1.什么是自动装配?
自动装配就是把别人(官方)写好的config配置类加载到spring容器,然后根据这个配置类生成一些项目需要的bean对象。Spring Boot 自动装配的原理是通过使用一些自动配置类来自动配置应用程序的 Spring 应用程序上下文。这些自动配置类会检测应用程序所需的类是否存在,如果存在,则自动配置它们。如果不存在,则不会进行任何配置。这样可以简化应用程序的配置,并减少配置错误。
2.自动装配开关
在@SpringBootApplication注解里的@EnableAutoConfiguration用@Import注解导入了一AutoConfigurationImportSelector.class类,这个类的selectImports方法会扫描我们类路径下的一个spring.factories文件(里面装的是很多官方写好的自动配置类的全限定名),然后返回这些类的名字。
3 进入AutoConfigurationImportSelector 进行断点测试
3.1 继续进行下一步 进行去重处理
3.2下一步 进行排除
3.3手动排除
3.4手动排除结果
3.5 下一步过滤
4 总结
启动类的@SpringBootApplication注解由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解组成,三个注解共同完成自动装配;
@SpringBootConfiguration 注解标记启动类为配置类
@ComponentScan 注解实现启动时扫描启动类所在的包以及子包下所有标记为bean的类由IOC容器注册为bean
@EnableAutoConfiguration通过 @Import 注解导入 AutoConfigurationImportSelector类,然后通过AutoConfigurationImportSelector 类的 selectImports 方法去读取需要被自动装配的组件依赖下的spring.factories文件配置的组件的类全名,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余读取到的各个组件的类全名集合返回给IOC容器并将这些组件注册为bean