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

 

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