[英]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.