全美网站建设,企业文化馆展厅设计,百度爱采购平台官网,天津建设工程信息网招投标正规吗自动配置原理 SpringBootApplication 该注解标识在SpringBoot项目的启动类上#xff0c;是SpringBoot中最为重要的注解#xff0c;该注解由三个部分组成。 SpringBootConfiguration#xff1a;该注解与Configuration注解作用一样#xff0c;用来声明当前类为一个配置类Comp…自动配置原理 SpringBootApplication 该注解标识在SpringBoot项目的启动类上是SpringBoot中最为重要的注解该注解由三个部分组成。 SpringBootConfiguration该注解与Configuration注解作用一样用来声明当前类为一个配置类ComponentScan组件扫描默认扫描当前启动类所在包及其子包EnableAutoConfigurationSpringBoot实现自动化配置的核心注解 该注解是个复合注解其中封住了一个Import注解指定注入到SpringIOC容器中的ImportSelector接口的实现类。具体参照文章SpringBoot原理-自动配置-方案_熵240的博客-CSDN博客 该实现类中实现了该接口ImportSelector中selectImports方法该方法的返回值是我们要导入到IOC容器中的全类名的集合在该方法中加载了两个文件 META-INF/spring和org.springframework.boot.autoconfigure.AutoConfiguration.imports META-INF/spring目录这个目录下的文件是Spring Boot自动配置的核心配置文件。在这个目录下可以定义多个配置文件每个配置文件对应一个自动配置类。这些配置文件使用了Spring的SPIService Provider Interface机制通过SpringFactoriesLoader加载并实例化自动配置类。 org.springframework.boot.autoconfigure.AutoConfiguration.imports文件这个文件定义了需要自动导入的其他自动配置类。在自动配置类中可以使用Import注解来导入其他自动配置类。而在AutoConfiguration.imports文件中可以列出需要自动导入的自动配置类的全限定类名这样在启动时Spring Boot会自动将这些自动配置类导入到容器中 在imports文件中会定义非常多的自动配置类配置类当中也会定义很多bean对象我们可以通过注解来设置将bean对象装配到IOC容器的条件。具体参见文章SpringBoot原理-自动配置-原理分析-Conditional_熵240的博客-CSDN博客
小结
自动装配简单讲就是将第三方的bean以及配置类装载到IOC容器中开发人员就不再需要写bean的配置了自动装配的实现只需要在启动类上加入SpringBootApplication注解就可以了而SpringBootApplication注解是一个复合注解其中自动装配的实现是通过EnableAutoConfiguration注解实现的自动装配的实现主要依靠三个关键的技术。 第一引入Starter启动依赖组件的时候该组件中必须含有Configuration配置类在这个配置类中我们需要通过Bean注解去声明要装配到IOC容器中的Bean对象第二上述配置类是放在第三方的jar包里面然后通过SpringBoot中约定优于配置的理念去把配置类的全路径放在META-INF/spring.factories文件中由此SpringBoot就可以知道第三方jar包里面配置类的位置当Spring Boot启动时会通过SpringFactoriesLoader加载META-INF/spring.factories文件中定义的自动配置类。然后根据条件注解的判断决定是否需要进行自动配置。第三SpringBoot拿到所有第三方jar包里面声明的配置类之后在通过Spring提供的ImportSelector接口来实现对于这些配置类的动态加载从而完成自动装配。该接口的实现类由EnableAutoConfiguration注解中包含的Import注解来指定。通过实现该中String[] selectImports()方法该方法的返回值为需要装入Spring IOC容器中类。