1. 程式人生 > >關於SpringBoot bean無法注入的問題(與檔案包位置有關)

關於SpringBoot bean無法注入的問題(與檔案包位置有關)

問題場景描述

整個專案通過Maven構建,大致結構如下:

  • 核心Spring框架一個module spring-boot-base
  • service和dao一個module server-core
  • 提供系統後臺資料管理一個module server-platform-app
  • 給移動端提供rest資料介面一個module server-mobile-api

Paste_Image.png
其中server-platform-appserver-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無法注入的問題檔案位置有關

問題場景描述 整個專案通過Maven構建,大致結構如下: 核心Spring框架一個module spring-boot-base service和dao一個module server-core 提

關於SpringBoot bean無法注入的問題檔案位置有關改變自動掃描的

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.example.SpringBootJdbcDemoApplication.SpringBootJdbcDe

關於SpringBoot bean無法註入的問題文件位置有關改變自動掃描的

sca 解決方案 ttr att tails tar nts csdn 自動掃描 參考網址:http://blog.csdn.net/u014695188/article/details/52263903 問題描述:SpringBoot bean無法註入的問題(與文件包

史上最簡單SpringBoot @Bean & @Qualifier 注入零 XML 注入

首先,Create 一個名叫 ApplicationConfig 的類: —> 1、用 @Configuration 註解上 —> 2、繼承 WebMvcConfigurerAdapter (零 XML 注入) —> 3、定義一個方法用 @Be

SpringBoot bean無法注入

*************************** APPLICATION FAILED TO START *************************** Description: Field userP in com.springboot.controller

解決springboot多模組注入@Bean、@Service、@Component訪問不到的問題

如果你因為Service注入失敗,看過無數文章,甚至看過N份原始碼仍不得要領,希望我能終結你的問題; SpringBoot中Service自動注入很方便,例: Service.class(介面類) ServiceImpl.class(實現類) Controller

對 spring中xml配置的初步理解,併成功注入spring jar版本號一定要同一

//.java package com.learning.ioc.interfaces; public interface OneInterface { public void say(String arg); } package com.learning.ioc.int

Spring容器和bean注入1

第一節 在IOC容器中裝配Bean 1.1Spring容器成功啟動條件 1.匯入Spring框架相關的jar包 2.正確配置spring配置檔案 3.Bean的類都已放到應用程式的類路徑下 1.2Bean配置資訊的組成 Bean配置資

spring中Bean注入1

Bean的注入包含的內容: XML注入 構造方法注入、靜態工廠注入、例項工廠注入,屬性注入的幾種方式(構造方法注入,set方法注入,p名稱空間注入,物件,集合、陣列、Map,Properties) Java注入:@Configuration、@Bean 自動注入:

Spring @Service生成bean名稱的規則當類的名字是以兩個或以上的大寫字母開頭的話,bean的名字會類名保持一致

@Service標註的bean,類名:EBSupplierService jsf服務的配置: <bean id="ebMonitorInnerServiceFacadeImpl" class = "com.trip.hotel.inner.api.impl.EBMonitorInner

spring Junit單元測試 bean 無法注入的問題

本人菜鳥在學習ssh 過程 ,遇見問題 向各位大佬請教。進行單元測試 爆出下面提示: 貼出下面配置資訊: applicationContext.xml 實現service 介面類 實現dao介面類 單元測試 進過本菜鳥的各種錯嘗試,上面的配置檔案內容沒有錯誤,只是整合框架的過

R語言文字挖掘入門篇各軟體詳解-謝佳標-專題視訊課程

R語言與文字挖掘入門篇(各軟體包詳解)—2926人已學習 課程介紹        本課程主要是利用R語言工具實現文字挖掘。主要內容包括:1、介紹文字挖掘的基本原理;2、文字挖掘相關包的安裝講解;3、tm包和Rwordseg包的詳解。課程收益    學習完本課程,學員能掌握利用

[Uva12563] Jin Ge Jin Qu hao 完全背,dp

stdin 附加 pre int sizeof span max -1 main 題目鏈接:https://vjudge.net/problem/UVA-12563 題意:n首歌要在m-1的時間內挑k首唱,現在希望在k盡可能大的情況下,時間盡可能長地唱。問最後最大k+1多大

關於小程序的坑註意的點

ges 不定 log tom 文件中 排列 不能 好用 蘋果 一、在使用滾動視圖scroll-view、橫向滾動(scroll-x)時:   1、要加點樣式才生效:white-space:nowrap。   2、不能設置display:flex,用display:inlin

Linux管理員入門講解Win系統的區別

linux 管理 員入 今天帶大家一起學習Linux,以後有空的話就一天一更,接下來都是講Linux系統的操作。大家都知道Win是一款以圖形為基礎的操作系統,其實更專業點的說,Win適合做客戶端,而Linux系統適合做服務器。 那Linux系統你進入就是一臺黑白電視機,沒錯!就是黑

2017科協青少年科技中心--中央電教館科技相關的比賽

www. view 通知 www .cn 中心 target 數字 .html 科協青少年科技中心http://www.cyscc.org.cn/--------機器人方向關於舉辦第十八屆中國青少年機器人競賽暨2018世界青少年機器人邀請賽的通知http://www.

手工編譯安裝Apache網站源碼編譯安裝

並發連接 oss 使用 write init.d 設置 level 1.4.1 ces 實驗目標1.學會構建AWStats日誌分析系統2.學會編譯安裝httpd服務器3.熟悉httpd服務的部署過程及常見配置 實驗環境1.安裝包apr-util-1.4.1.tarapr-1

Robberies 01背dp變形

答案 bsp .net cin ems i++ wid str algorithm ? 題意:一個強盜要搶劫銀行又不想被抓到,所以要進行概率分析求他在不被抓的情況下能搶最多的錢。他給定T(樣例個數),N(要搶的銀行的個數),P(被抓的概率要小於P)Mj(強盜能搶第j個銀

squid傳統代理附壓縮文件

cef 初始化 ln -s mct 文件 alt cor ... 大小 說明:當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中已經有客戶機需要訪問的頁面(紅色1 2 3 4),則直接將緩存中的頁面內容反饋給客戶機;如果緩存中沒有客戶機需要訪

旋轉卡殼計算凸的寬度

#include <bits/stdc++.h> #define ll long long using namespace std; const int N = 2e5+100; struct P{ ll x,y; P(ll _x=0,ll _y=0){x=_