SpringBoot自动装配原理

1.什么是自动装配?

                自动装配就是把别人(官方)写好的config配置类加载到spring容器,然后根据这个配置类生成一些项目需要的bean对象。Spring Boot 自动装配的原理是通过使用一些自动配置类来自动配置应用程序的 Spring 应用程序上下文。这些自动配置类会检测应用程序所需的类是否存在,如果存在,则自动配置它们。如果不存在,则不会进行任何配置。这样可以简化应用程序的配置,并减少配置错误。

2.自动装配开关

SpringBoot自动装配原理_第1张图片

SpringBoot自动装配原理_第2张图片

 

SpringBoot自动装配原理_第3张图片

 在@SpringBootApplication注解里的@EnableAutoConfiguration用@Import注解导入了一AutoConfigurationImportSelector.class类,这个类的selectImports方法会扫描我们类路径下的一个spring.factories文件(里面装的是很多官方写好的自动配置类的全限定名),然后返回这些类的名字。
SpringBoot自动装配原理_第4张图片

   3  进入AutoConfigurationImportSelector 进行断点测试

SpringBoot自动装配原理_第5张图片

 SpringBoot自动装配原理_第6张图片

3.1 继续进行下一步 进行去重处理

SpringBoot自动装配原理_第7张图片

 3.2下一步 进行排除

SpringBoot自动装配原理_第8张图片

 3.3手动排除

SpringBoot自动装配原理_第9张图片

 3.4手动排除结果SpringBoot自动装配原理_第10张图片

3.5 下一步过滤SpringBoot自动装配原理_第11张图片

 4 总结

启动类的@SpringBootApplication注解由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解组成,三个注解共同完成自动装配;

 @SpringBootConfiguration 注解标记启动类为配置类
    @ComponentScan 注解实现启动时扫描启动类所在的包以及子包下所有标记为bean的类由IOC容器注册为bean
    @EnableAutoConfiguration通过 @Import 注解导入 AutoConfigurationImportSelector类,然后通过AutoConfigurationImportSelector 类的 selectImports 方法去读取需要被自动装配的组件依赖下的spring.factories文件配置的组件的类全名,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余读取到的各个组件的类全名集合返回给IOC容器并将这些组件注册为bean

你可能感兴趣的:(spring,boot,spring,java)