springboot自动装配原理

自动配置:

  pom.xml

    spring-boot-dependencies:核心依赖在父工程中

    我们在写或者引入一些springboot依赖的时候,不需要指定版本,因为有这些版本仓库

  启动器:springboot的启动场景

  springboot自动装配原理

 

   比如spring-boot-starter-web,会自动导入web环境所有的依赖

  springboot会将所有的功能场景,变成一个个启动器

  我们要使用什么功能,就只需要找到对应的启动器就可以了

 

  主程序:

    

    注解:

      @SpringBootConfiguration :springboot配置
            @Configuration:spring配置类
              @Component:  是一个spring的组件
      @EnableAutoConfiguration:自动配置
          @AutoConfigurationPackage:自动配置包
            @Import({Registrar.class}):自动配置包注册
          @Import({AutoConfigurationImportSelector.class}):自动配置导入选择
      //获取所有的配置
      List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);
      
      //获取候选的配置
      protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {

       List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());

       Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");
       return configurations;
    }
    
    META-INF/spring.factories:自动配置核心文件
    

springboot自动装配原理

 

   Properties properties = PropertiesLoaderUtils.loadProperties(resource);

所有资源加载到配置类中  

 

    
上一篇:leetcode 538. 把二叉搜索树转换为累加树


下一篇:Spring常用注解(一)