spring-boot-starter自动装配流程总结

spring-boot-starter自动装配流程总结:
@SpringBootApplication注解是否组合注解,包含了@EnableAutoConfiguration,@EnableAutoConfiguration又包含了AutoConfigurationImportSelector.class自动配置导入选择器,
首先这个class扫描与启动类同一包下的组件外,还会去jar包中是否存在META-INF/spring.factories文件,然后从spring.factories中加载需要自动配置的类。(自动配置说的就是把Bean交给spring容器进行管理)
 

stater加载过程:
@SpringBootApplication
    - @EnableAutoConfiguration
        - @Import({AutoConfigurationImportSelector.class})
            - META-INF
            - spring.factories
                - org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
                  com.cq.entity.UserAutoConfiguration,\
                  com.cq.entity.ProductAutoConfiguration
                  
                  ProductAutoConfiguration配置类中加载配置文件的读取类,和bean

 

@Data
public class AddressEntity {

    public AddressEntity(Integer id){
        this.id = id;
    }

    private Integer id;
}


// 自动装配类
@Configuration
@ConditionalOnClass({AddressEntity.class})
public class DemoAutoConfiguration {

    @Bean
    public AddressEntity addressEntity(){
        return new AddressEntity(10);
    }

}


META-INF/spring.factories文件:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cqsj.entity.DemoAutoConfiguration

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章