SpringBoot自動裝配的原理
阿新 • • 發佈:2018-06-08
AR loader 讀取 onf inf cati shc ssl .class
1.SpringApplication.run(AppConfig.class,args);執行流程中有refreshContext(context);這句話.
2.refreshContext(context);內部會解析我們的配置類上的標簽.實現自動裝配功能的註解@EnableAutoConfiguration
3.會解析@EnableAutoConfiguration這個註解裏面的@Import引入的配置類.AutoConfigurationImportSelector
4.AutoConfigurationImportSelector這個類中有這個方法.SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader());
5.SpringFactoriesLoader.loadFactoryNames的作用就是讀取jar包中的/項目中的META-INF/spring.factories文件.
6.spring.factories配置了自動裝配的類.比如:com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
7.根據條件給我們自動裝配Bean
SpringBoot自動裝配的原理