SpringBoot自动配置原理

53 阅读1分钟

1、通过@SpringBootConfiguration引入了@EnableAutoConfiguration(负责启动自动配置功能) 2、@EnableAutoConfiguration引入了@import注解
3、Spring容器启动时,加载IOC容器时会解析@import注解。
4、@import导入了一个deferredImportSelector组件,它会使SpringBoot的自动配置类的顺序在最后,这样方便我们扩展和覆盖。(deferredInportSelector延迟加载,就是为了@ConditionalOnBean这样的注解更能发挥作用,就是为了扩展和覆盖)为的是让你自己定义的类(上面加了@ConditionalOnBean这样的类先注册)
5、读取所有META-INF/spring.factories文件
6、读取文件中所有的key,value这些类,只筛选出EnableAutoConfiguration这种自动配置类。 (key是EnableAutoConfiguration,value是一堆类拼起来)
7、最后筛选有效的自动配置类。比如类上面有@ConditionalOnClass(RabbitTemplate.class),若没有RabbitTemplate类,带有这种注解的自动配置类就不会被加载。