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

相关文章
相关标签/搜索