解決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。

推薦閱讀: