1.什么是springboot自动配置
Springboot自动装配就是从META-INF/spring.factories下获取到需要进行自动装配的类,并生成Bean对象后交给Spring进行管理。
2.自动配置原理
@SpringBootApplicaton标注一个主程序类
@SpringBootApplicaton复合注解包含注解@ComponentScan(作用:自动扫描并加载复合条件的Bean对象或组件),@EnableAutoConfiguration,@SpringBootConfiguration(配置类)
@EnableAutoConfiguration(作用:开启自动配置功能)
@EnableAutoConfiguration内部导入 AutoConfigurationImportSelector.class该类中含有selectImports()方法,并通过SpringFactoriesLoader.loadFactoryNames()方法扫描到META-INF/spring.factories的jar包,获取spring.factories的key并拿到匹配 value值,最后将这些类导入Spring的ioc容器里。
@Import({AutoConfigurationImportSelector.class}):自动配置导入选择器,给容器中导入一些组件
Springboot项目运行的时候,SpringApplication.run()会执行selectImports()方法,找到所有自动配置类全限定对应的class,然后将所有的自动配置类加载到Spring容器里面。
自动配置过程:Springboot启动时,通过注解@EnableAutoConfiguration找到META-INF/spring.factories配置文件中的所有配置类,并进行加载。通过全局配置application.yml注入到spring容器内。