1) 在spring-boot-autoconfigure包下保存了大量的自动配置类,用于对某些框架进行配置
2) 自动配置类设置了一些执行条件,比如当某些类引入项目中,当对应的依赖引入项目中,自动配置就执行
3) 所有的自动配置类名称都保存到 spring.factories文件中(2.7.0版本移动到了imports文件中)
4) 在启动类上的注解@SpringBootApplication 包含三个注解:
- @ComponentScan 对组件进行扫描
- @SpringBootConfiguration 标记配置类
- @EnableAutoConfiguration 自动配置生效
5) @EnableAutoConfiguration包含注解
@AutoConfigurationPackage 注册自动扫描包 @Import({AutoConfigurationImportSelector.class}) 导入自动配置选择器
AutoConfigurationImportSelector类
-- > loadFactories
---> loadFactoryNames
---> loadSpringFactories
---> Enumeration urls = classLoader.getResources("META-INF/spring.factories");
从spring.factories文件中读取所有的自动配置类,加载到IOC容器中
总结
1).SpringBoot启动会加载大量的自动配置类;
2).我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3).我们可以看到这个自动配置类中配置了哪些组件;(只要我们要用的组件有,我们就不需要再配置);
4).给容器中自动配置类添加组件时,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值。
ctrl+shift+t搜索类 其中存在的类就是已经自动配置的类
其中类中有xxxxProperties点进去,其中所存在的属性就是可以装配的属性