1.在編寫第一個hello springboot專案時遇到的bug。
Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
警告:你的應用上下文可能沒有啟動,因為你將註解新增到了預設的package上面了。下面的堆疊資訊中也有一句話包括了這個意思。
......This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)。
情景:在編寫第一個hello springboot專案時遇到的bug。建立專案,匯入依賴,編寫MainApplication.class,執行時報錯
2、我的專案結構是這樣的(我將MainApplication的檔案建在了java資料夾下面)
3、原因解析
我並沒有使用@ComponentScanning註解,這裡為什麼會蹦出個這樣的註解呢?
SpringBoot在編寫啟動類(Main方法所在的類)的時候如果不使用@ComponentScan指明物件掃描範圍,預設指掃描當前啟動類所在的包裡的物件。
(注意:我在編寫Main方法的時候並沒有加@ComponentScan註解,因而,他會掃描Application所在的包裡的物件)
如果當前啟動類沒有包,則在啟動時會報錯:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package錯誤。
(注意:寫在java資料夾下的Application類,是不從屬於任何一個包的,因而啟動類沒有包)
4、解決辦法
方法一、將MainApplication建在其他的包下面
方法二、在MainApplication類上面加@ComponentScan註解,指定要掃描的包
@ComponentScan(basePackageClasses = HelloController.class)