解決Callable的對象中,用@Autowired註入別的對象失敗問題
實現Callable的對象中,用@Autowired註入別的對象失敗
場景是這樣:
我需要在一個實現類A中寫一個拿到返回值的多線程,於是用的Callable,在這個實現類A外我又寫瞭一個專門實現Callable的實現類B,在B中用spring註解@Autowired註入另外一個實現類C,當代碼運行時發現,C怎麼也不能註入進B中,腦袋瓜疼。
目前的解決路線:
把@Autowired寫到瞭A類中,並且把B對象直接放到A中,作為瞭內部類,這樣發現用C好使瞭,但是還不清楚為什麼單獨在B中用@Autowired或者其他註入對象的方法行不通!
Spring @Autowired 註解不生效
@Autowired
默認不生效。為瞭生效,需要在xml配置:<context:annotation-config>
註解一<context:component-scan base-package=” “> 開啟包掃描
註解二<context:annotation-config>開啟註入註解掃描
一般情況下,兩個註解不一起使用.
當”註解一”,掃描含有註解@Component/@Service等的類時,註入註解自動生效就不需要配置註解二瞭
當要掃描的類上沒有含有@Component/@Service等註解時,註入註解沒有生效,那麼隻需要添加註解二即可
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Spring和SpringMVC掃描註解類沖突的解決方案
- SpringBoot@Componet註解註入失敗的問題
- 在SSM中配置瞭事務控制但沒生效的問題
- 詳解spring如何使用註解開發
- Spring @Async無法實現異步的解決方案