你真的想自動裝入變量嗎?或者你想在獲取bean時明確地設置它們?
在後一種情況下,你可以簡單地調用ApplicationContext.getBean(Class<T> clz, Object ... arguments)
,你的情況......
Person person = context.getBean(Person.class, "Henry", "Miller");
顯然,這並沒有什麼關係@Autowired
。或者你想自動裝入一些字符串?在這種情況下,您通常會使用@Value
註釋。自動裝配Autowired用於注入豆,您可以通過字段注入做...
@Autowired
private MyService service;
...通過構造函數注入...
@Autowired
public Person(MyService service) { ... }
...通過setter注入.. 。
@Autowired
public void setMyService(MyService service) {..}
但通常你只在自動裝配豆的方式。字符串是沒有祕密,所以你必須使用@Value
...
@Autowired
public Person(@Value('${app.some.property}') final String firstName) {...}
這將注入的app.some.property配置的屬性成豆。當然,如果你真的想從應用程序上下文中注入某些東西,這纔是好事。如果您想動態創建人員,則可以使用上述方法。
簡而言之,我希望在需要時創建一個具有2個字符串屬性的人類對象。在java中,我們可以使用new來做到這一點,但是想要使用spring來創建相同的方法。 @Autowired在沒有參數構造函數的情況下工作良好,但它如何與具有參數的構造函數一起工作。 – Atul
更新了答案。 –