SpringBoot自动装配原理
@SpringBootApplication
中包含了三个核心注解
@SpringBootConfiguration
声明当前的类是配置类
@ComponentScan
组件扫描,默认扫描引导类所在包以及子包
@EnableAutoConfiguration
实现SpringBoot自动化配置的核心注解
@EnableAutoConfiguration
包含一个核心注解
@Import(AutoConfigurationImportSelector.class)
将这个类注入到Spring容器中
AutoConfigurationImportSelector.class:自动配置选择器
将meta-inf/spring.factories中的配置类加载进容器
在这些配置类中一般有这些核心注解
@Configuration()标明自己是配置类
@ConditionOnClass(xxx.class)在有对应字节码文件时才会加载
在配置类中通过添加了@Bean的方法
方法上可以通过@ConditionOnMissingBean(name = beanname)设置只有环境中没有对应的bean才会加载
将方法的返回值作为bean注入到容器中