如何在運行時根據 URL 中接收到的引數動態創建 Student 類物件并將其注入到 WebapplicationContext 中,以便 IoC 容器可以自動將其自動連接到 Access 類?
我需要在運行時根據用戶引數創建一個 bean。
@RestController
public class FunRestController {
@GetMapping("/{id}/{name}")
public String welcomeToBoot(@PathVariable int id, @PathVariable String name) {
// How to create Student class object at run time dynamically based
// on the param received in the URL and can auto wire it dynamically to ***Access*** class below ?
return "Welcome " name;
}
}
我需要自動裝配一個創建的運行時 bean
public class Access {
@Autowired
Student s;
void print() {
System.out.println(s.name);
}
}
POJO:
public class Student {
public int id;
public String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
}
uj5u.com熱心網友回復:
我建議不要傳遞@Autowired給Student物件,而是將其作為引數傳遞給函式。如下:
public class Access {
void print(Student s) {
System.out.println(s.name);
}
}
現在您只需要print()使用給定的Student. 如果您需要Access成為 Spring 管理的 Bean 以便將其注入控制器,則需要使用@Component.
uj5u.com熱心網友回復:
您可以創建一個執行緒區域變數并將其初始化為第一件事,而不是創建 bean。然后它將在整個請求/回應范圍內可用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334518.html
上一篇:SpringSecurityAuthenticationProviderautenticate()回傳null的原因
