Springboot中new出來的實例中@Autowired注入的Spring Bean為NULL的問題


某個類中的成員,如果是采用@Autowired注入Spring Bean,則當前類的實例,必須也是Spring Bean才能成功注入,即該實例不能用new xxx()來獲得,這種方式獲得的實例無法調用@Autowired注入的Bean,應該也采用@Autowired注入,注意在類上使用@Component注解。

其他注入失敗的原因,注意這句話:“SpringBoot項目的Bean裝配默認規則是根據Application類所在的包位置從上往下掃描!“Application類”是指SpringBoot項目入口類。這個類的位置很關鍵:如果Application類所在的包為:com.boot.app,則只會掃描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,則不會被掃描!即, 把Application類放到dao、service所在包的上級,com.boot.Application知道這一點非常關鍵”。或者在啟動類上加上@ComponentScan注解顯式標明要掃描的位置。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: