[英]How to pass class constructor parameters in Spring bean Autowired by annotations
没有IOC容器的常规方法是:
new User("Names", 22);
这里的参数值是动态的,例如,它们是通过用户提交表单获取的,因此不能存储在文件中。
TextField userNames = new TextField();
names = userNames.getText()
其他参数相同。
哪里:
@Component
public class User {
public User(String names, int age) {
.
.
.
}
}
如何初始化User
,同时通过构造函数的参数,其中用户被Autowired
到另一个类:
@Component
public class AnotherClass {
@Autowired
User user(....)????? // How do I do it here
.
.
.
}
public User( @Value("Ganesh") String names,
@Value("27") int age) {
names=names;
this.age=age;
}
除了@value之外,在XML中使用索引还具有灵活性,如果index = 0,比如使用两次,则后面的值用于覆盖旧值。 类似地,可以在重载和参数化构造函数的情况下指定类型,并且IOC自己选择适当的构造函数。 如果未提供type或index,则会考虑构造函数args的默认顺序,如果参数化的cons不匹配,则会发生异常。 假设使用了setter并且在bean标记内部,为同一个名称提供了两个属性标记,在这种情况下,抛出异常而不是覆盖该值。 在setter中,不允许使用两个参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.