Spring Boot 應用裏面 jar 包中的 controller 等組件如何加載的

默認狀況下 Spring Boot 在啓動時, 只會掃描啓動類對應的包以及子包進行裝配.
例如, 經過 com.x.y.z 下面 Application.java 啓動之後, 只會對 com.x.y.z** 包裏面內容進行裝配. 若是想要使用依賴 jar 包裏面controller 等組件, 則須要添加component-scan路徑.java

<context:component-scan base-package="org.example"/>

然而, 發如今依賴 Spring cloud config server 的時候, 並無添加組件掃描, 結果 jar 包中的 controller 同樣可以使用.
分析了一下, 原來在啓動類上, 添加了 @EnableConfigServer 註解之後, 此註解裏面有個 @Import 註解, 會將一些Configuration類引進來, Configuration 類中經過 @Bean 註解的方法建立 config server 須要使用的類, 其中包括 Controller 類.
這樣在沒有手工添加 component-scan 的狀況下, 只須要在啓動類上添加註解, 同樣可以使用 jar 包裏的組件.code

相關文章
相關標籤/搜索