關於SpringBoot bean無法注入的問題(與文件包位置有關)改變自動掃描的包


原因:同事在寫demo時出現bean加了@component后卻無法被spring掃描到(在編譯的時候IDEA就提示拿不到對應的bean)的問題. 
后來經過研究是跟文件包的位置有關的.

springboot的bean裝配規則: 
根據Application類所在的包位置從上到下進行掃描的! 
“Application類”是指springboot的項目入口類.這個類的位置很關鍵: 
如果Application類所在的包為:io.github.gefangshuai.app那么掃描的位置就是:io.github.gefangshuai.app包及其下的所有子包.如果需要注入的bean不在io.github.gefangshuai.app包及其子包下,則不會被掃描到.

注:可以通過對Application類添加@ComponentScan(basePackages={“xxx.xxx”,”xxx.xxx”})來指定掃描的包,但是一旦指定后就不會在默認掃描Application類下的包.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM