最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot的自動(dòng)配置原理解析

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

SpringBoot的自動(dòng)配置

SpringBoot的自動(dòng)配置要從它的啟動(dòng)類 @SpringBootApplication 說起,點(diǎn)進(jìn)注解。

在這里插入圖片描述

元注解

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

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

@SpringBootConfiguration

@SpringBootConfiguration 是springboot的配置類。

它的注解也是復(fù)合注解

在這里插入圖片描述

@Configuration 就是把當(dāng)前的類標(biāo)記位配置類。

所以 @SpringBootConfiguration 標(biāo)注在某個(gè)類上,表示它是Spring Boot的配置類。

@ComponentScan

在這里插入圖片描述

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

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

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

AutoConfigurationExcludeFilter 這個(gè)類時(shí)是專門來排除配置類,并且是自動(dòng)配置類中里面的其中一個(gè)。

*@EnableAutoConfiguration

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

在這里插入圖片描述

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

@Import 給我們導(dǎo)入了一個(gè) AutoConfigurationImportSelector 類

在這里插入圖片描述

在這里插入圖片描述

DeferredImportSelector工作原理

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

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

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

相關(guān)文章

  • 淺談Java slf4j日志簡(jiǎn)單理解

    淺談Java slf4j日志簡(jiǎn)單理解

    這篇文章主要介紹了淺談Java日志簡(jiǎn)單理解,詳細(xì)的介紹了slf4j的概念和使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java集合中的Set之LinkedHashSet詳解

    Java集合中的Set之LinkedHashSet詳解

    這篇文章主要介紹了Java集合中的Set之LinkedHashSet詳解,LinkedHashSet是Set集合的一個(gè)實(shí)現(xiàn),具有set集合不重復(fù)的特點(diǎn),同時(shí)具有可預(yù)測(cè)的迭代順序,也就是我們插入的順序,并且linkedHashSet是一個(gè)非線程安全的集合,需要的朋友可以參考下
    2023-09-09
  • Spring Security實(shí)現(xiàn)身份認(rèn)證和授權(quán)的示例代碼

    Spring Security實(shí)現(xiàn)身份認(rèn)證和授權(quán)的示例代碼

    在 Spring Boot 應(yīng)用中使用 Spring Security 可以非常方便地實(shí)現(xiàn)用戶身份認(rèn)證和授權(quán),本文主要介紹了Spring Security實(shí)現(xiàn)身份認(rèn)證和授權(quán)的示例代碼,感興趣的可以了解一下
    2023-06-06
  • Java  匿名內(nèi)部類詳解及實(shí)例代碼

    Java 匿名內(nèi)部類詳解及實(shí)例代碼

    這篇文章主要介紹了Java 匿名內(nèi)部類詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 使用JavaCV生成視頻縮略圖的示例詳解

    使用JavaCV生成視頻縮略圖的示例詳解

    在處理多媒體內(nèi)容時(shí),生成視頻的縮略圖是一項(xiàng)常見的需求,這不僅有助于用戶快速預(yù)覽視頻內(nèi)容,還能提高用戶體驗(yàn)和界面的美觀度,JavaCV是一個(gè)用于計(jì)算機(jī)視覺的開源框架,使得在Java環(huán)境中處理視頻和圖像變得簡(jiǎn)單,本文將介紹如何使用JavaCV來生成視頻的縮略圖
    2025-07-07
  • Java 內(nèi)省introspector相關(guān)原理代碼解析

    Java 內(nèi)省introspector相關(guān)原理代碼解析

    這篇文章主要介紹了Java 內(nèi)省introspector相關(guān)原理代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • IDEA中Git的配置及其使用過程

    IDEA中Git的配置及其使用過程

    本文介紹了如何在IntelliJ IDEA中配置和使用Git,包括配置Git路徑、克隆項(xiàng)目、更新代碼、提交和推送代碼、合并分支、管理分支以及將本地項(xiàng)目推送到GitHub
    2025-12-12
  • spring?boot項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)與數(shù)據(jù)庫的連接

    spring?boot項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)與數(shù)據(jù)庫的連接

    在我們?nèi)粘5拈_發(fā)過程中,肯定不可避免的會(huì)使用到數(shù)據(jù)庫以及SQL?語句,下面這篇文章主要給大家介紹了關(guān)于spring?boot項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)與數(shù)據(jù)庫連接的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • java集合之CopyOnWriteArrayList源碼解析

    java集合之CopyOnWriteArrayList源碼解析

    這篇文章主要介紹了java集合之CopyOnWriteArrayList源碼解析,容器array是volatile修飾的,即set和get方法都是線程安全的,整個(gè)添加過程上了鎖,所以整體是通過volatile和lock來保證的線程安全,需要的朋友可以參考下
    2023-12-12
  • feign 調(diào)用第三方服務(wù)中部分特殊符號(hào)未轉(zhuǎn)義問題

    feign 調(diào)用第三方服務(wù)中部分特殊符號(hào)未轉(zhuǎn)義問題

    這篇文章主要介紹了feign 調(diào)用第三方服務(wù)中部分特殊符號(hào)未轉(zhuǎn)義問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論

宜都市| 和田县| 广德县| 闽侯县| 马尔康县| 福建省| 河源市| 长白| 青岛市| 五台县| 外汇| 湟中县| 集贤县| 康平县| 阿拉尔市| 鲁甸县| 原平市| 中卫市| 新乡县| 梁平县| 华坪县| 东至县| 贺兰县| 尉犁县| 宜宾县| 灵川县| 都兰县| 瓦房店市| 乡宁县| 醴陵市| 利津县| 新乡市| 叶城县| 房产| 白玉县| 诸暨市| 城口县| 德令哈市| 芜湖市| 马龙县| 绥中县|