有沒有辦法使用Spring查找方法注入參數?例如,我希望能夠通過構造函數傳遞任意參數的同時實例化原型範圍的bean。彈簧查找方法注入參數
7
A
回答
2
您可以通過field/setter注入來注入它們。 (請注意,構造函數注入在春季不受歡迎,但支持)
0
總之,沒有。 Spring確實支持所謂的「方法注入」,但它與你所想的不同。 Spring也支持構造函數注入,但是你不會自己調用構造函數,Spring就是自己調用構造函數。
相反,你可以使用反射來實例化自己的類,並通過任意參數:
Class<MyObject> clazz = MyObject.class; // this can be looked up or stored in a field, etc.
MyObject myObject = clazz.getConstructor(String.class, int.class)
.newInstance("arbitrary parameter", 42);
1
它看起來像在春天4.1.0.RC2最後加入這一重要功能。我測試了它,它似乎工作。
它加入作爲JIRA票SPR-7431 ("Passing lookup-method arguments to created bean constructor")的一部分:
<查找法/>應允許指定任意數量的參數。這些參數應該直接傳遞給新創建的bean的構造函數。
有關如何添加該功能的更多信息,this blog post是由打開JIRA門票的人員編寫的。
相關問題
- 1. Java彈簧注入
- 2. 彈簧MVC註釋控制器方法,無法「查找」方法DELETE操作
- 3. 以列表爲參數的彈簧數據查詢方法
- 4. 彈簧數據查詢方法創建
- 5. 如何做多個參數的彈簧構造函數注入
- 6. CGLIB,彈簧和注入構造函數
- 7. 彈簧數據Envers庫未能注入
- 8. 彈簧注入時將參數添加到servlet篩選器
- 9. 使用add方法在xml中進行彈簧注入
- 10. 彈簧注入使用從一個靜態方法
- 11. 因彈簧注入導致Junit方法調用失敗
- 12. 注入帶註釋的方法參數
- 13. 彈簧數據與dbref的mongodb查找
- 14. 用彈簧引導和彈簧數據修正PUT方法
- 15. 彈簧注射和註釋
- 16. 彈簧mvc url參數
- 17. 彈簧參數太長
- 18. Mybatis彈簧變換參數
- 19. 彈簧注入Bean屬性爲空
- 20. 彈簧注入和對象實例化
- 21. 彈簧注入映射問題
- 22. Hazelcast不注入彈簧依賴關係
- 23. 彈簧配置 - 注入模擬豆
- 24. 如何注入彈簧豆異常
- 25. 在罐子上彈簧注入屬性
- 26. 彈簧依賴注入週期
- 27. 彈簧動態對象注入 - @Autowired
- 28. 在外部jar彈簧依賴注入
- 29. 將彈簧豆注入非單例類
- 30. 彈簧注入模擬不使用
爲什麼在構造函數注入中使用setter注入會更好?我認爲它們是相同的。 – 2010-12-02 17:27:28