欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot的自動配置原理解析

 更新時間:2023年08月17日 08:48:35   作者:我也曾把你舉過頭頂  
這篇文章主要介紹了SpringBoot的自動配置原理解析,SpringBoot的自動配置要從它的啟動類@SpringBootApplication說起,點進注解,@Target設置當前注解可以標記在哪,(ElementType.type)表示標注在類上面,需要的朋友可以參考下

SpringBoot的自動配置

SpringBoot的自動配置要從它的啟動類 @SpringBootApplication 說起,點進注解。

在這里插入圖片描述

元注解

可以看到,它是復合注解組成,前面四個注解是注解的元注解,用來定義注解的行為。

  • @Target設置當前注解可以標記在哪。(ElementType.type)表示標注在類上面。
  • @Retion(RetentionPolicy.RUNTIME)當注解標注的類編譯后,以什么方式保留
    • { SOURCE:編譯后保留源文件,不保留注解。
      CLASS:會保留注解,但是不會被JVM所編譯到,不會被反射找到。
      RUNTIME: 可以保留在源文件和被JVM加載 }
  • @Documented 當我們生成java doc(文檔)的時候,會生成注解信息
  • @Inherited是否會被集成

@SpringBootConfiguration

@SpringBootConfiguration 是springboot的配置類。

它的注解也是復合注解

在這里插入圖片描述

@Configuration 就是把當前的類標記位配置類。

所以 @SpringBootConfiguration 標注在某個類上,表示它是Spring Boot的配置類。

@ComponentScan

在這里插入圖片描述

@ComponentScan 掃描包,相當于在spring.xml配置中 <context:comonent-scan> ,但是并沒有指定basePackage,如果沒有指定掃描包,spring底層會自動掃描當前配置類所在的包。

其中 excludeFilters屬性 會排除掉那些不需要的bean,按照自定義的方式來排除,需要指定一個類(實現(xiàn) TypeFilter接口 )。

然后根據(jù) match() 來篩選不需要的bean

AutoConfigurationExcludeFilter 這個類時是專門來排除配置類,并且是自動配置類中里面的其中一個。

*@EnableAutoConfiguration

@EnableAutoConfiguration 是啟動自動配置。只要加了它,就會加載所有的自動配置類。開啟自動配置功能。 以前我們需要配置的東西,spring boot會自動幫我們配。

在這里插入圖片描述

@AutoConfigurationPackage 將當前配置類所在的包保存在一個BasePackages的Bean中。供Spring內(nèi)部使用。

@Import 給我們導入了一個 AutoConfigurationImportSelector 類

在這里插入圖片描述

在這里插入圖片描述

DeferredImportSelector工作原理

spring的底層會看你有沒有實現(xiàn) getImportGroup() 方法。

  • 沒有實現(xiàn)會返回一個數(shù)組,將數(shù)組中的完整類名注冊為Bean實現(xiàn)了就需要返回一個自定義實現(xiàn)了 DeferredImportSelector.Group 的類,實現(xiàn)了了 Group接口的slelctImport() 和 process() 。
  • process()調(diào)用了 getAutoConfigurationEntry() ,依次調(diào)用 getCandidateConfigurations() 獲取所有的自動配置類。

到此這篇關于SpringBoot的自動配置原理解析的文章就介紹到這了,更多相關SpringBoot自動配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot?實現(xiàn)CAS?Server統(tǒng)一登錄認證的詳細步驟

    SpringBoot?實現(xiàn)CAS?Server統(tǒng)一登錄認證的詳細步驟

    ??CAS(Central?Authentication?Service)中心授權服務,是一個開源項目,目的在于為Web應用系統(tǒng)提供一種可靠的單點登錄,這篇文章主要介紹了SpringBoot?實現(xiàn)CAS?Server統(tǒng)一登錄認證,需要的朋友可以參考下
    2024-02-02
  • 在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    這篇文章主要介紹了在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • IDEA 2020.2 部署JSF項目的詳細過程

    IDEA 2020.2 部署JSF項目的詳細過程

    本文通過圖文并茂的形式教大家如何在IDEA中創(chuàng)建一個JSF項目及遇到問題的解決方法,感興趣的朋友跟隨小編一起看看吧
    2021-09-09
  • Maven使用方法詳及方式詳細介紹

    Maven使用方法詳及方式詳細介紹

    使用maven倉庫的話需要從網(wǎng)上下載maven的包,比如“apache-maven-3.5.4-bin.tar”,下載完成之后解壓,在解壓的文件夾中的conf目錄下的settings.xml文件夾下就可以配置maven遠程倉庫和本地倉庫的地址
    2022-11-11
  • java通過ip獲取客戶端Mac地址的小例子

    java通過ip獲取客戶端Mac地址的小例子

    java通過ip獲取客戶端Mac地址的小例子,需要的朋友可以參考一下
    2013-03-03
  • java實現(xiàn)手機短信驗證的基本思路

    java實現(xiàn)手機短信驗證的基本思路

    這篇文章主要為大家詳細介紹了java實現(xiàn)手機短信驗證的基本思路,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java編碼摘要算法實例解析

    Java編碼摘要算法實例解析

    這篇文章主要介紹了Java編碼摘要算法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 詳解Java中字典樹(Trie樹)的圖解與實現(xiàn)

    詳解Java中字典樹(Trie樹)的圖解與實現(xiàn)

    Trie又稱為前綴樹或字典樹,是一種有序樹,它是一種專門用來處理串匹配的數(shù)據(jù)結(jié)構。本文將利用圖解詳細講解Trie樹的實現(xiàn),需要的可以參考一下
    2022-05-05
  • Java?Synchronized鎖的使用詳解

    Java?Synchronized鎖的使用詳解

    在多線程并發(fā)問題中,常用Synchronized鎖解決問題。本篇文章主要介紹了并發(fā)編程中Synchronized鎖的用法知識記錄,感興趣的小伙伴可以了解一下
    2022-10-10
  • Java之System.getProperty()的作用及使用說明

    Java之System.getProperty()的作用及使用說明

    這篇文章主要介紹了Java之System.getProperty()的作用及使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論