SpringBoot自动配置原理
@SpringBootApplication可以开启SpringBoot应用的自动配置,其底层原因是什么呢?
@SpringBootApplication是一个复合注解,主要包含以下几个主要注解
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
@SpringBootConfiguration
底层是@Configuration注解,作用是支持JavaConfig的方式来进行配置
@EnableAutoConfiguration
这是开启自动配置的关键注解,其中的关键功能由@Import提供,其导入的AutoConfigurationImportSelector的selectImports()方法通过SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包。
@ComponentScan
扫描注解,默认是扫描当前类下的package。将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中。