報錯:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is defined

demon_倔強青銅發表於2019-12-12

可能大家也都遇到過這個錯,我在這裡記錄一下,截圖可能看不清
在這裡插入圖片描述
其實就是這個錯

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is defined

看字面意思我們能夠知道原因是spring異常:bean沒有被定義,也就是說,spring容器中沒有這個bean

解決方法:

大多數是有三種情況導致這個報錯。

這裡先說一下我的情況

1.沒有把該bean注入到spring容器中

也就是我們需要檢視spring配置檔案是否配置該bean或者是否配置開啟註解掃描、配置要掃描的包

這一點如果是沒有想到的,那應該去再複習一下spring,我今天就看了一晚上

推薦兩個比較官方的連結,不過是英文的網站:BaeldungSpring

2.該bean是否存在,bean上是否有spring元件註解(如:@Component, @Resource, @Service, @Controller)、bean是否處於可掃描的包下

如果是屬於這類問題的話,疏忽了可以理解,但是不清楚的話還是建議去鞏固一下註解和spring方面的知識(這些我都還是需要去繼續學習的)

可以看一下我整理的部落格:spring註解:@Autowired 和@Resource

3.檢查以下你的bean名,是否有書寫失誤

通過我的查詢,此類錯誤導致的報錯竟然很多,這就是一個細心的問題了


排查流程:

所以一般報錯了,可以這樣排查
1.看報錯資訊:bean 是否已經注入,或者得到的bean名字錯誤。
2.看spring的配置檔案:是否掃描了正確的需要掃描的包
3.使用註解配置的話,看是否相關注解沒有加

一般是這三種情況,三種情況都是沒有問題的話,基本是可以的。可以嘗試clean一把,再重新編譯執行。

當然不排除其他情況,目前我還沒了解到,如有,請告知!!!

相關文章