SpringBoot-自动配置
Posted ChangZhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot-自动配置相关的知识,希望对你有一定的参考价值。
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类中获取
配置文件能配置什么就可以参照某个功能对应的这个属性类
以上是关于SpringBoot-自动配置的主要内容,如果未能解决你的问题,请参考以下文章