我在自己的springboot
項目中的啟動類上同時使用了@SprinBootApplication
和@ComponentScan
注解, 雖然項目能夠正常啟動,但是訪問資源后,返回404錯誤,隨后在啟動類中輸出bean
,發現controller
創建失敗:
而后我將@ComponentScan
去掉后資源就能訪問到了.
原因
-
@SprinBootApplication
本身包含了@ComponentScan
注解, -
當在
@ComponentScan
中指定了basePackages
后,會覆蓋@SpringBootApplication
默認的掃描路徑,可能導致Bean
加載錯誤 -
同時使用這兩個注解可能會使掃描范圍發生改變。比如指定的
basePackages
參數和默認掃描路徑不一致,可能導致部分自動裝配的Bean
沒有被掃描到,出現bean
創建失敗或其他錯誤。