自动配置:
pom.xml
-
spring-boot-dependencies :核心依赖在父工程中
-
我们在写或者引入一些springboot依赖的时候,不需要指定版本,就因为有这些版本仓库启动器
-
启动器:说白了就是springboot的启动场景
-
比如说spring-boot-starter-web,他就会帮我们自动导入web环境所有的依赖!
-
spring-boot会将所有的功能场景,变成一个个的启动器
-
如果我们要使用什么功能,只需要找到一个个的启动器就行了
主程序
@SpringBootConfiguration:springboot的配置
@Configuration:spring的配置类
@Component:说明这也是一个spring的组件
@EnableAutoConfiguration:自动配置
@AutoConfigurationPackage:自动配置包
@Import({AutoConfigurationImportSelector.class}):导入选择器
结论:springboot所有自动配置都是在启动的时候扫描并加载:spring.factories所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器,有了启动器,我们自动装配就生效了,然后就配置成功!
结论:
- SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值
- 将这些值作为自动配置类导入容器 , 自动配置类就生效 , 帮我们进行自动配置工作;
- 整个J2EE的整体解决方案和自动配置都在springboot-autoconfigure的jar包中;
- 它会给容器中导入非常多的自动配置类 (xxxAutoConfiguration), 就是给容器中导入这个场景需要的所有组件 ,
并配置好这些组件 ; - 有了自动配置类 , 免去了我们手动编写配置注入功能组件等的工作;