Springboot自动装配
大家都知道SpringBoot通过自动化的方式进行装配,无需程序员弄各种配置文件。
在springboot的启动类有@SpringBootApplication这个注解,点进去你会看到@EnableAutoConfiguration这个注解继续点进去,你就会看到,其中@AutoConfigurationPackage主要是扫描主配置类及子类包,存储自动配置包供后边使用,比如JPA包,等等。
而下面那个@Import({AutoConfigurationImportSelector.class}),这个类点进去主要就是为了加载springboot的各种配置文件。
在这个类中你可以找到如下这个方法,去加载配置路径为META-INF/spring-autoconfigure-metadata.properties文件。
还有一个方法则会去加载目录下META-INF/spring.factories这个文件
其中spring.factories是告诉你有哪些配置类需要加载。
spring-autoconfigure-metadata.properties是对应配置类需要自动装配的条件。
总结
1.启动类有@SpringBootApplication注解,这个注解包含了@EnableAutoConfiguration注解
2.@EnableAutoConfiguration注解,由@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class)组成
3.前者主要是扫描主配置类及子类包,存储自动配置包;后者调用selectImports方法,将配置类信息交给SpringFactory加载器进行一系列的创建过程,先生成枚举类对象,再遍历放到List集合中。
4.其中selectImports方法主要扫描了META-INF下的spring-autoconfigure-metadata.properties 和 spring.factories两个配置文件。