關於SpringBoot bean無法注入的問題(與檔案包位置有關)改變自動掃描的包
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.example.SpringBootJdbcDemoApplication.SpringBootJdbcDemoApplication': Unsatisfied dependency expressed through field 'userRepository': No qualifying bean of type [com.example.repositories.UserRepository] found for dependency [com.example.repositories.UserRepository]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.example.repositories.UserRepository] found for dependency [com.example.repositories.UserRepository]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
無法注入Dao中的Bean!
解決分析後來經研究發現,SpringBoot專案的Bean裝配預設規則是根據Application類所在的包位置從上往下掃描! “Application類”是指SpringBoot專案入口類。這個類的位置很關鍵:
如果Application類所在的包為:io.github.gefangshuai.app
,則只會掃描io.github.gefangshuai.app
包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app
及其子包下,則不會被掃描!
知道這一點非常關鍵,不知道Spring文件裡有沒有給出說明,如果不知道還真是無從解決。
轉:http://blog.csdn.net/gefangshuai/article/details/50328451,http://412887952-qq-com.iteye.com/blog/2292733
在開發中我們知道Spring Boot預設會掃描啟動類同包以及子包下的註解,那麼如何進行改變這種掃描包的方式呢,原理很簡單就是:@ComponentScan註解進行指定要掃描的包以及要掃描的類。
作者:AiPuff
連結:https://www.jianshu.com/p/f8652ee6e2fa
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- 關於SpringBoot bean無法注入的問題(與檔案包位置有關)Spring BootBean
- SpringBoot 自動掃描第三方包及spring.factories失效的問題Spring Boot
- 關於移動臨時表空間檔案位置的問題
- 關於分割槽表中的全partition掃描問題
- 關於Spring的bean注入SpringBean
- @FeignClient @Resource 無法注入Bean Springboot無法啟動clientBeanSpring Boot
- Spring4.0MVC學習資料,註解自動掃描bean,自動注入bean(二)SpringMVCBean
- 關於使用擴充套件包的問題。套件
- 關於listener無法啟動的問題解決
- win10怎麼關閉defender自動掃描_win10關閉defender自動掃描的步驟Win10
- 有關*.properties檔案的問題
- 關於golang.org/x包問題Golang
- 關於 PHP Session ID 改變的問題解決PHPSession
- 關於 Go Modules 巢狀引入本地包的問題Go巢狀
- 11g中關於控制檔案自動備份的改進
- win10 安全中心關閉定期掃描方法 如何關閉win10自動掃描Win10
- python關於多級包之間的引用問題Python
- 關於 Google 電子表格無法訪問的問題Go
- 關於SAX解析xml檔案的問題XML
- 關於解壓zip檔案的問題
- 關於requests的session方法無法保持cookie的問題。SessionCookie
- SpringBoot多模組專案中無法注入其他模組中的spring beanSpring BootBean
- 使用全表掃描快取大表的相關問題快取
- JBOSS 做專案時的問題 有關Jboss, Mbean, Session bean 求助BeanSession
- 關於docker無法訪問倉庫的映象代理問題Docker
- springboot自動掃描新增的BeanDefinition原始碼解析Spring BootBean原始碼
- 關於oracle檔案許可權的問題Oracle
- 關於檔案上傳的問題smartUpload
- 關於http包中的handlerHTTP
- 關於Qt無法直接使用cout和cin的問題QT
- JavaScript閉包與變數的經典問題JavaScript變數
- 告急:關於檔案的定義格式與命名規則的問題
- 關於外部引用jar包報紅無法使用解決方法JAR
- SpringBoot中普通類無法通過@Autowired自動注入Service、dao等bean解決方法Spring BootBean
- 有關swoole+laravel 上傳檔案的問題Laravel
- 關於XAMPP中Apache和Mysql因埠占用無法啟動的問題ApacheMySql
- 關於win平臺下,oracleservice<sid>無法正常啟動的問題Oracle
- 關於新版chrome與火狐自動填充賬號密碼的問題Chrome密碼