一、SpringBoot自动装配
核心注解@SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。
@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制
@Configuration:允许在上下文中注册额外的 bean 或导入其他配置类
@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描启动类所在的包下所有的类 ,可以自定义不扫描某些 bean。
@EnableAutoConfiguration:实现自动装配的核心注解,自动装配核心功能的实现是通过 AutoConfigurationImportSelector类。
AutoConfigurationImportSelector 类实现了 ImportSelector接口的 selectImports方法,该方法主要用于获取所有符合条件的类的全限定类名,这些类需要被加载到 IOC 容器中。
主要方法 getAutoConfigurationEntry(AutoConfigurationMetadata autoConfigurationMetadata, AnnotationMetadata annotationMetadata) 负责加载自动配置类
1、判断自动装配开关是否打开。默认spring.boot.enableautoconfiguration=true,可在 application.properties 或 application.yml 中设置
2、用于获取EnableAutoConfiguration注解中的 exclude 和 excludeName
3、获取需要自动装配