《原神攻略》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

回到顶部