關於SpringBoot bean無法注入的問題(與檔案包位置有關)
問題場景描述
整個專案通過Maven構建,大致結構如下:
- 核心Spring框架一個module
spring-boot-base
- service和dao一個module
server-core
- 提供系統後臺資料管理一個module
server-platform-app
- 給移動端提供rest資料介面一個module
server-mobile-api
其中server-platform-app
與server-mobile-api
分別是兩個springboot搭建的獨立服務端。server-platform-app
大致業務開發接近尾聲,然後獨立出另一個web端server-mobile-api
用於給mobile端提供資料。可就在搭建完成之後遇到了奇葩問題!
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [io.github.gefangshuai.rtat.service.RestaurantService] found for dependency: 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.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
... 24 more
總是提示無法注入Service或者Dao中的Bean!
解決分析
後來經研究發現,SpringBoot專案的Bean裝配預設規則是根據Application類所在的包位置從上往下掃描!
“Application類”是指SpringBoot專案入口類。這個類的位置很關鍵:
如果Application類所在的包為:
io.github.gefangshuai.app
,則只會掃描io.github.gefangshuai.app
包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app
及其子包下,則不會被掃描!
知道這一點非常關鍵,不知道Spring文件裡有沒有給出說明,如果不知道還真是無從解決。
相關文章
- 關於SpringBoot bean無法注入的問題(與檔案包位置有關)改變自動掃描的包Spring BootBean
- 有關*.properties檔案的問題
- 關於移動臨時表空間檔案位置的問題
- @FeignClient @Resource 無法注入Bean Springboot無法啟動clientBeanSpring Boot
- 關於 Google 電子表格無法訪問的問題Go
- 關於SAX解析xml檔案的問題XML
- 關於解壓zip檔案的問題
- 關於listener無法啟動的問題解決
- SpringBoot多模組專案中無法注入其他模組中的spring beanSpring BootBean
- JBOSS 做專案時的問題 有關Jboss, Mbean, Session bean 求助BeanSession
- 關於requests的session方法無法保持cookie的問題。SessionCookie
- 關於oracle檔案許可權的問題Oracle
- 關於檔案上傳的問題smartUpload
- 關於Qt無法直接使用cout和cin的問題QT
- 有關swoole+laravel 上傳檔案的問題Laravel
- 告急:關於檔案的定義格式與命名規則的問題
- 位置無關碼、位置有關碼、連結地址、載入地址
- 關於Android檔案數過大,分包問題的解決辦法Android
- 關於使用擴充套件包的問題。套件
- 關於配置檔案中的預設值的問題
- 有關於css中行高的問題CSS
- 有關於論文投稿的問題
- 有關Rose的類圖畫法問題ROS
- 關於golang.org/x包問題Golang
- 與控制檔案有關的恢復
- 關於檔案上傳下載的編碼問題
- 關於FileDownloader檔案長度校驗的問題
- 關於 Xcode 9 拖入檔案未生效的問題XCode
- 請教高手關於解析xml檔案的問題 急~~XML
- SaaS無法解決“關鍵”問題
- 有關模型關聯的問題模型
- 關於一個歸檔問題?
- 關於有狀態和無狀態會話bean的解釋 (轉)會話Bean
- 關於Linux下Texlive無法找到已安裝字型的問題與解決Linux
- 關於建立Android工程R檔案丟失的問題Android
- C++雜談之關於檔案操作的若干問題C++
- 關於redo log 檔案中記錄的內容問題 ?
- 關於websphere讀取war配置檔案出錯的問題Web