没有 IOC 容器的正常方法是:
new User("Names", 22);
这里的参数值是动态的,例如,它们是通过用户提交表单获取的,因此不能存储在文件中。
TextField userNames = new TextField();
names = userNames.getText()
其他参数相同。
哪里:
@Component
public class User {
public User(String names, int age) {
.
.
.
}
}
如何初始化 User
,同时传递构造函数的参数,其中 User 是 Autowired
到另一个类:
@Component
public class AnotherClass {
@Autowired
User user(....)????? // How do I do it here
.
.
.
}
最佳答案
我怀疑这是您真正想要做的。我的猜测是 User
是某种模型对象,不应由 Spring 的依赖注入(inject)处理。
依赖注入(inject)(详细解释 here)通常在容器启动时或在执行请求时为 Spring MVC 创建 bean 并将其连接在一起。因此,必须在创建 AnotherClass
实例之前创建 User
对象。
如果这是使用 Spring MVC 的请求的一部分,@ModelAttribute
以及 @RequestParam
和 @PathVariable
可能是您的 friend .有关这方面的一些重要文档,请查看 Spring docs
关于java - 如何在通过注解 Autowiring 的Spring bean中传递类构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593560/