SpringBoot自动配置原理
- 通过
@SpringBootConfiguration引入了@EnableAutoConfiguration(负责启动自动配置功能) @EnableAutoConfiguration引入了@Import注解- Spring容器启动时:加载Ioc容器时会解析
@Import注解 @Import导入了一个deferredImportSelector,会使SpringBoot的自动配置类的顺序再最后,这样方便我们扩展和覆盖- 然后读取所有的
/META-INF/spring.factories文件 - 过滤出所有AutoConfigurtionClass类型的类
- 最后通过
@ConditionXXX排除无效的自动配置类
自己的话:
- 在主启动类上添加了
@SpringBootApplication,这个注解组合了@EnableAutoConfiguration - 在
@EnableAutoConfiguration中又组合了@Import注解,导入了AutoConfigurationImportSelector类 - 实现了
selectImports方法,这个方法经过层层调用最终会读取META-INF目录下的spring.factories文件 spring.factories存储了大量的全类名路径,springboot会解析符合条件的即@ConditionalOnXXX的注解,符合的会注入到容器中

浙公网安备 33010602011771号