Springboot
面试题
SpringBoot中的starter到底是什么
starter提供了一个自动化配置类,一般命名为XXXAutoConfiguration 使用条件注解决定一个配置是否生效
自动配置原理
-
SpringBootApplication是由@Configuration、@EnableAutoConfiguration和@ComponentScan的组合
@Configuration表示该类是Java配置类
@CompenentScan开启自动扫描符合条件的bean(添加了@Controller @Service等注解)
@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置
主要由@AutoConfigurationPackages和EnableAutoConfigurationImportSelector.class组成
@AutoConfigurationPackages用于将启动类所在包里面的所有组件注册到spring容器
EnableAutoConfigurationImportSelector通过springfactorysloader从类路径下去读取META-INF/Spring.factorys的信息