亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot是如何實現(xiàn)自動配置的你知道嗎

 更新時間:2021年08月26日 11:45:47   作者:小小本科生debug  
這篇文章主要介紹了詳解SpringBoot自動配置原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

SpringBoot啟動類:

@SpringBootApplication
public class CommunityApplication {
	public static void main(String[] args) {
		SpringApplication.run(CommunityApplication.class, args);
	}
}

進(jìn)入@SpringBootApplication源碼中:

在這里插入圖片描述

在這里插入圖片描述

AutoConfigurationImportSelector 類的作用就是往 Spring 容器中導(dǎo)入組件,我們再進(jìn)入這個類的源碼,發(fā)現(xiàn)有這幾個方法:

在這里插入圖片描述

loadmetadata的方法是加載項目的基本配置數(shù)據(jù)信息。

getAutoConfigurationEntry方法則是實現(xiàn)自動裝配的邏輯,繼續(xù)點進(jìn)去

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

public static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";

步驟如下:

1、首先注意到 selectImports 方法,這個方法用于給容器中導(dǎo)入組件,然后跳到 getAutoConfigurationEntry 方法,用于獲取自動配置項。

2、再來進(jìn)入 getCandidateConfigurations 方法就是 獲取一個自動配置 List ,這個 List 就包含了所有的自動配置的類名 。

3、再進(jìn)入 SpringFactoriesLoader 類的 loadFactoryNames 方法,跳轉(zhuǎn)到 loadSpringFactories 方法發(fā)現(xiàn) ClassLoader 類加載器指定了一個 FACTORIES_RESOURCE_LOCATION 常量。

4、然后利用 PropertiesLoaderUtils 把 ClassLoader 掃描到的這些文件的內(nèi)容包裝成 properties 對象,從 properties 中獲取到 EnableAutoConfiguration.class 類(類名)對應(yīng)的值,然后把他們添加在容器中。

打開META-INF/spring.factories文件,EnableAutoConfiguration 有一個 = 號,= 號后面那一串就是這個項目需要用到的自動配置類。

在這里插入圖片描述

追溯完成!??!

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java字符串比較方法equals的空指針異常的解決

    Java字符串比較方法equals的空指針異常的解決

    這篇文章主要介紹了Java字符串比較方法equals的空指針異常的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java反射中java.beans包學(xué)習(xí)總結(jié)

    Java反射中java.beans包學(xué)習(xí)總結(jié)

    本篇文章通過學(xué)習(xí)Java反射中java.beans包,吧知識點做了總結(jié),并把相關(guān)內(nèi)容做了關(guān)聯(lián),對此有需要的朋友可以學(xué)習(xí)參考下。
    2018-02-02
  • IntelliJ IDEA 安裝及初次使用圖文教程(2020.3.2社區(qū)版)

    IntelliJ IDEA 安裝及初次使用圖文教程(2020.3.2社區(qū)版)

    這篇文章主要介紹了IntelliJ IDEA 安裝及初次使用(2020.3.2社區(qū)版),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • java實現(xiàn)隨機生成驗證碼圖片

    java實現(xiàn)隨機生成驗證碼圖片

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)隨機生成驗證碼圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • maven 刪除下載失敗的包的方法

    maven 刪除下載失敗的包的方法

    本文介紹了當(dāng)Maven包報紅時,使用刪除相關(guān)文件的方法來解決該問題,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Springboot使用Spring Data JPA實現(xiàn)數(shù)據(jù)庫操作

    Springboot使用Spring Data JPA實現(xiàn)數(shù)據(jù)庫操作

    Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 規(guī)范的基礎(chǔ)上開發(fā)的一個框架,使用 Spring Data JPA 可以極大地簡化JPA 的寫法,本章我們將詳細(xì)介紹在Springboot中使用 Spring Data JPA 來實現(xiàn)對數(shù)據(jù)庫的操作
    2021-06-06
  • maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings處理方法

    maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bi

    這篇文章主要給大家介紹了關(guān)于maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings的處理方法,這個問題通常是因為項目中存在多個SLF4J的實現(xiàn)綁定(bindings)導(dǎo)致的沖突,需要的朋友可以參考下
    2024-02-02
  • mybatis plus實體類中字段映射mysql中的json格式方式

    mybatis plus實體類中字段映射mysql中的json格式方式

    這篇文章主要介紹了mybatis plus實體類中字段映射mysql中的json格式方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring之Scope注解使用詳解

    Spring之Scope注解使用詳解

    spring的bean管理中,每個bean都有對應(yīng)的scope。在BeanDefinition中就已經(jīng)指定scope,默認(rèn)的RootBeanDefinition的scope是prototype類型,使用@ComponentScan掃描出的BeanDefinition會指定是singleton,最常使用的也是singleton
    2023-02-02
  • Java動態(tài)設(shè)置注解值及原理詳解

    Java動態(tài)設(shè)置注解值及原理詳解

    這篇文章主要介紹了Java動態(tài)設(shè)置注解值及原理詳解,AnnotationInvocationHandler是注解的代理hander,通過反射獲取類的注解時會通過AnnotationInvocationHandler創(chuàng)建代理對象并將數(shù)據(jù)存儲到memberValues里,需要的朋友可以參考下
    2023-11-11

最新評論