SpringBoot自动装配原理
简单的说,自动装配,就是SpringBoot自动帮你把第三方Bean注入到IOC容器中,这样你就不需要手动注入Bean
在SpringBoot中,我们只需要在启动类上加上**@SpringBootApplication**注解就可以实现自动装配
@SpringBootApplication是一个复合注解
@EnableAutoConfiguration才是实现自动装配功能的主要注解
自动装配主要依赖三个主要核心技术
- 引入Starter启动依赖组件的时候,这个组件里面必须要包含有**@Configuration配置类,在这个配置类里面通过@Bean**注解来声明要注入到IOC容器中的对象
- 这个配置类是放在第三方的jar包中的,这个时候,由于SpringBoot约定大于配置的思想,就会把这个配置类的全路径放进classpath:/MATA-INF/spring.factories文件中,这样SpringBoot就可以知道第三方jar包配置类的位置,才能在启动的时候自动去加载这个配置类,这个步骤主要是用到了 Spring 里面的 SpringFactoriesLoader 来完成的。
- 在SpringBoot把配置类的信息加入到classpath:/MATA-INF/spring.factories中,Spring提供的ImportSelector 接口,实现对这些配置类的动态加载
其实在SpringFramework3.x中,就出现了**@Enable注解,就有了实现的雏形,SpringBoot中,你想加载什么类,就可以加上@EnableXXXX**注解,就可以在启动类启动的时候自动加载那个类
以在启动类启动的时候自动加载那个类
在我看来,SpringBoot 是约定优于配置这一理念下的产物,所以在很多的地方,都会看到这类的思想。它的出现,让开发人员更加聚焦在了业务代码的编写上,而不需要去关心和业务无关的配置。