1.自动装配原理
什么是自动装配原理
springboot的自动装配就是 从spring.factories文件中获取项目启动时加载的自动配置类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理。
自动装配原理
1、在启动类上有一个注解@SpringBootApplication,它的主要作用是标明该类是一个主配置类,并且是springboot的主程序类,这个注解包含3个子注解,分别是:
@SpringBootConfiguration
该注解标明当前类是一个配置类,并且配置类也是容器中的组件
@ComponentScan
指定扫描哪些组件
@EnableAutoConfiguration
这个注解用于开启自动配置功能
这个注解又包含两个注解:
1.@AutoConfigurationPackage
2.@Import(AutoConfigurationImportSelector.class)
@AutoConfigurationPackage注解,即自动配置包,它指定默认的包规则,将扫描主程序类的所在包及其子包下的所有组件并导入到容器中。底层实现是在这个类中利用了Registrar给容器中注入了一系列组件,将指定的一个包下的所有组件都注入进来,而这个包就是主程序类所在的包。这就是为什么我们在springboot开发中,将controller层或者service层等组件放在主程序同包或其子包下的原因。
@Import(AutoConfigurationImportSelector.class)这个注解,它底层实现是在这个类中调用了一个getAutoConfigurationEntry()方法,这个方法又调用了getCandidateConfigurations()方法,获取所有的配置类,而这个方法又间接调用了loadSpringFactories()方法,关键就在这个方法,它会查找到所有META-INF/spring.factories位置的文件,而这个文件里边通过EnableAutoConfiguration=xxx写好了项目启动时加载的自动配置类。这些配置类在启动的时候会默认全部加载,但是最终会根据Springboot里边的条件装配规则@Conditional注解来按需加载配置类。
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「胡英俊学Java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45813393/article/details/127767735