SpringBoot(cloud)自動裝配bean找不到類型的問題
SpringBoot自動裝配bean找不到類型
Spring基于注解的@Autowired是比較常用的自動裝配注解,但是會因為個人的疏忽,SSM進行配置的時候沒有將對應bean所在包給掃描進去;或者使用Boot的時候,沒有放在啟動類所在包及其子包下導致報錯。
今天我就犯了因為boot掃不到包的問題
Description:
Field empApi in feign_consumer.demo.controller.testController required a bean of type 'api.eApi' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:Consider defining a bean of type 'api.eApi' in your configuration.
Process finished with exit code 1
看報錯,很明顯就是找不到Bean;換而言之就是bean對象沒有裝配到Spring容器中,導致啟動的時候要裝配缺找到。
看項目結構

很明顯
在boot啟動的時候掃描的是feign_consumer.demo這個包及其子包,而需要裝配的bean就只在api這包下,Spring在啟動的時候根本不會掃到api這個包(除非使用了@ComponentScan修改了約定)。所以就會導致項目啟動報錯。
這也提醒了我們,使用模塊化開發(fā)要注意項目的完整性以及其工程結構;另外,代碼規(guī)范也很重要。
無法自動裝配。未找到“xxxMapper”類型的bean
Could not autowire. No beans of ‘xxxMapper’ type found.
說明Spring框架沒有識別到你的xxxMapper中的類,也及是說,xxxMapper的類沒有被Spring框架給管理,如果你所需要的類需要給Spring給管理,那么你得在他上面加上@Repository注解,這樣你在service層自動注入時他才不會報錯。
如果的你得類不需要管理或者繼承或實現一些規(guī)則,并且程序沒有產生一些錯誤,那么這些都是可以被允許的。
@Repository
public interface AdminMapper ?{
?? ?public void xxx(){}
}public class AdminServiceImpl ?{
? ? @Autowired
? ? private AdminMapper adminMapper;
? ? }這樣他就不會報錯了。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實現方法
- 解決springboot與springcloud版本兼容問題(附版本兼容表)
- 將Springboot項目升級成Springcloud項目的圖文教程
- SpringCloud解決Feign異步回調問題(SpringBoot+Async+Future實現)
- SpringBoot項目改為SpringCloud項目使用nacos作為注冊中心的方法
- springboot集成springCloud中gateway時啟動報錯的解決
- 解決nacos升級spring cloud 2020.0無法使用bootstrap.yml的問題
- 從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)
- 詳解SpringBoot與SpringCloud的版本對應詳細版
- Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯系分析
相關文章
SpringMVC源碼解讀之HandlerMapping - AbstractUrlHandlerMapping系列re
這篇文章主要介紹了SpringMVC源碼解讀之HandlerMapping - AbstractUrlHandlerMapping系列request分發(fā) 的相關資料,需要的朋友可以參考下2016-02-02
Java日期接收報錯:could?not?be?parsed,?unparsed?text?found?a
在做Java開發(fā)時肯定會碰到傳遞時間參數的情況,這篇文章主要給大家介紹了關于Java日期接收報錯:could?not?be?parsed,?unparsed?text?found?at?index?10的解決辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01
如何使用Spring boot的@Transactional進行事務管理
這篇文章介紹了SpringBoot中使用@Transactional注解進行聲明式事務管理的詳細信息,包括基本用法、核心配置參數、關鍵注意事項、調試技巧、最佳實踐以及完整示例,感興趣的朋友一起看看吧2025-02-02

