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注解来按需加载配置类。
版权归原作者 胡英俊学Java 所有, 如有侵权,请联系我们删除。