springboot 中出現的could not autowired no bean have been found的解決方法


學習springboot 的過程中出現了could not autowired no been have been found翻譯成成中文就是不能完成自動注入,找不到注入時依賴的相關的bean類

一、解決的方法:

1.查看自己的springboot啟動類是否添加了@Component注解,如果沒有解決問題,請查看2

2.檢查自己的注入的屬性的名稱是否和配置文件中的名稱一致(或者說在字節的主入口類中是否配置了@ConfigurationProperties(prefix = "配置文件的屬性的名稱")),如果還是報錯,進行第三步

3.在springboot的啟動類中添加 @SpringBootApplication(scanBasePackages = "com") 添加需要掃描的包(可以掃描更上一級目錄)

 

二、如果是第三種方法解決問題,那么問題產生的原因是什么呢?

錯誤原因:SpringBoot項目的Bean裝配默認規則是根據Application類所在的包位置從上往下掃描! “Application類”是指SpringBoot項目入口類。這個類的位置很關鍵:

如果Application類所在的包為:com.Java.hello.app,則只會掃描com.Java.hello.app包及其所有子包,如果service或dao所在包不在com.Java.hello.app及其子包下,則不會被掃描!

 

三、解決方法

第一種:Application類放在父包下面,所有有注解的類放在同一個下面或者其子包下面

第二種:指定要進行掃描注解的包URL,上面的問題的解決方案可以在Application類上面加注解掃描配置文件包下面的類。

 


免責聲明!

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



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