在彈簧最新版本中,我們可以使用註釋自動裝配一個豆,如@Autowired
。這將使用它的類型(或構造函數,如果應用它)自動裝載bean。 有什麼辦法可以使用@Autowired
基於我們在Spring的XML文件中沒有註釋的bean名稱的註釋:autowire =「byName」?按名稱使用註釋自動裝配彈簧豆
43
A
回答
41
您可以使用可以使用JSR-250 @Resource
進行名稱bean自動裝配,除非需要構造器注入或多參數方法被拒絕。。
從文檔:
如果要表達的名字註解驅動的注入,不主要使用@Autowired,即使在技術上是能夠通過@Qualifier值指的是bean的名字。相反,使用JSR-250 @Resource註釋,該註釋在語義上定義爲通過其唯一名稱來標識特定的目標組件,並且聲明的類型與匹配過程無關。
86
1
我在使用bean名稱代理,這個代理搞亂了名稱的自動裝配。 @Resource沒有這個問題,因爲它不關心類型。所以現在我知道Spring開發人員推薦這個建議的原因之一:-)只是FYI
+0
在Spring文檔中提到了另外一個原因:......本身被定義爲集合或映射類型的bean不能通過@Autowired注入,因爲類型匹配不適用於它們。 – rwitzel 2014-01-03 13:39:37
2
如果你想定義它們將在DI容器中註冊的bean的名字,你可以在註釋本身中傳遞這個名字,例如@Service(「employeeManager」)。
然後使用下面的代碼,你可以按名稱
@Autowired
@Qualifier("employeeManager")
private EmployeeManagerService employeeManagerService;
1
使用@Component( 「beanname」)在bean的Java類定義
然後同時自動裝配使用JSR 330
啓用自動連線@Inject @Named(Value =「beanname」)
相關問題
- 1. 彈簧自動裝配爲我的註解豆
- 2. 指定彈簧豆與註釋
- 3. 彈簧自動裝配使用的Cobertura
- 4. 使用Java註釋的彈簧配置
- 5. 彈簧豆配置
- 6. 彈簧配置 - 注入模擬豆
- 7. 彈簧自動裝配合格豆的集合
- 8. 常規斯波克嘲諷彈簧自動裝配豆
- 9. 自動裝配彈簧豆在駱駝處理器
- 10. 彈簧自動裝配:不起作用
- 11. 彈簧自動裝配不起作用
- 12. 彈簧自定義自動裝配
- 13. 彈簧自動裝配Struts動作類
- 14. 彈簧豆類配置
- 15. 自動裝配豆
- 16. 自動裝配豆
- 17. 來自javascript的彈簧控制器調用。彈簧註釋
- 18. 重複使用彈簧豆 - 名稱衝突
- 19. 使用彈簧註釋自動檢測組件
- 20. 彈簧注射和註釋
- 21. 彈簧自動裝配與ibatis的
- 22. 彈簧自動裝配接口
- 23. 彈簧自動裝配和類繼承
- 24. 彈簧自動裝配停在GAE
- 25. 彈簧自動裝配bean是空
- 26. 自動裝配在MyBatis的彈簧1.2.0
- 27. 關閉自動裝配彈簧@Service
- 28. 彈簧自動裝配問題在Servlet
- 29. 彈簧4 TestNG的+ @自動裝配Autowired
- 30. 彈簧自動裝配工作不
很棒的發現。這並不明顯。 – ATrubka 2015-08-27 16:35:49
應該不是'@ Autowired'而不是'@ Autowire'? – user3114157 2016-11-25 10:16:54