关于java:SpringBoot自动配置

5次阅读

共计 801 个字符,预计需要花费 3 分钟才能阅读完成。

springboot 的主启动类 springbootApplication

类中有一个注解 @SpringbooApplicaiton

这个注解中又蕴含 @CompentScan,负责扫描 xml 配置的 bean, 将其退出到 ioc 容器中

@SpringbootConfiguration 示意是一个 SpringBoot 的配置类

他上面又有两个注解 @Configuration 和 @Component
@Configuration 示意这是一个配置类,配置类对应 Spring 的 xml 配置文件
@Component 是示意这是一个组件 bean

回到之前与 @SpringbootConfiguration 同级的 @EnableAutoConfiguration 注解

作用是开启主动配置性能

她上面有个 @AutoConfigurationPackageb, 主动配置包
@import Spring 的底层组件,给容器中导入一个组件

@Import({Register.class})给容器导入组件
这个 Register 是具体的,实际上是 AutoConfigurationImportSelector- 主动配置导入选择器

进入代码,办法 getCandidateConfigurations(参数 a, 参数 b), 返回的就是最开始看的启动主动导入配置文件的注解类 EnableAutoConfiguration

下面的办法其实调用了 SpringFactoriesLoader 的静态方法 loadFactoryNames()办法

这个办法又调用了 loadSpringFactories 办法

这个类读取了 resoures 文件下的 MATA-INF 中的 spring.factories 文件中的内容

这就是主动配置本源所在

主动配置原理
依据不同的条件决定配置类是否失效
失效就向容器中增加各种组件

组件的属性从对应的 properties 类中获取
配置文件能配置什么就能够参照某个性能对应的这个属性类

正文完
 0