《原神攻略》2.6版刷黑蛇眾路線整理
1、SpringBoot自動裝配是什麼?
關鍵檔案:META-INF/spring.factories
啟動器:spring-boot-starter-XXX
檔案中的配置的型別資訊載入到Spring容器,並執行類中定義的各種操作,直接引入一個starter就可以使用對應的第三方元件的功能(例如:redis)
自動裝配:可以通過註解或簡單配置就能夠在SpringBoot中實現某個技術功能。
2、SpringBoot自動裝配的具體流程:
(1)核心註解@SpringBootApplication(包含@EnableAutoConfiguration、@Configuration、@ComponentScan)
@EnableAutoConfiguration(啟動SpringBoot自動配置機制)
@Configuration(允許在容器中註冊額外的bean或匯入其它配置類)
@ComponentScan(掃描@Component、@Service、@Controller註解的bean)
(2)@EnableAutoConfiguration —— 實現自動裝配的核心註解
@EnableAutoConfiguration通過 AutoConfigurationImportSelector類實現
(3)AutoConfigurationImportSelector類——載入自動裝配類
通過SpringFactoriesLoader 最終載入META-INF/spring.factories中的自動裝配類
實現了ImportSelector介面中的selectImports()方法
(4)selectImports() 方法 —— 獲取所有符合條件的類的全限定類名,並將這些類載入到ioc容器中
(5)getAutoConfigurationEntry()——負責載入自動裝配類
(6)籠統流程:
1、判斷自動裝配是否開啟
application.properties/application.yml中spring.boot.enableautoconfiguration=true
2、獲取EnableAutoConfiguration註解中的exclude和excludeName
3、SpringFactoriesLoader獲取需要自動裝配的所有配置類,讀取 spring.factories
讀取XXXAutoConfiguration,按需載入元件
4、@ConditionalOnXXX 按需載入元件,滿足條件,載入的類才會生效
例:@ConditionalOnBean:當容器中有指定Bean的條件下
@ConditionalOnClass:當類路徑下有指定類的條件下
總結:SpingBoot所有的自動配置在啟動時,會通過@SpringBootApplication中通過SpringFactoriesLoader進行掃描獲取META-INF/spring.factories檔案獲取類,@SpringBootApplication其中的@EnableAutoConfiguration通過AutoConfigurationImportSelector類實現ImportSelector介面中的selectImports()方法,通過ConditionalOnXXX註解獲取所有符合條件的類,然後呼叫getAutoConfigurationEntry()方法載入自動裝配類。
3、SpringBoot中的run()方法
(1)SpringApplication.run(XXX.class,args) 通過反射啟動
(2)SpringApplication類的作用
1、判斷應用的型別是普通專案還是WEB專案
2、查詢並載入所有可以的初始化器,設定到initializers屬性中
3、找出所有的應用程式監聽器,設定到listeners屬性中
3、推動並設定main方法的定義類,找到執行的主類
以上是 《原神攻略》2.6版刷黑蛇眾路線整理 的全部内容, 来源链接: utcz.com/yxgl/578108.html