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

SpringBoot自動裝配原理以及分析

 更新時間:2022年11月19日 16:32:44   作者:Dongguabai  
這篇文章主要介紹了SpringBoot自動裝配原理以及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

先看看SpringBoot的主配置類

里面有一個main方法運行了一個run()方法,在run方法中必須要傳入一個被@SpringBootApplication注解的類。

@SpringBootApplication

SpringBoot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就會運行這個類的main方法來啟動SpringBoot項目。

那@SpringBootApplication注解到底是什么呢,點進去看看:

發(fā)現(xiàn)@SpringBootApplication是一個組合注解。

@SpringBootConfiguration

先看看@SpringBootConfiguration注解

這個注解很簡單,表明該類是一個Spring的配置類。

再進去看看@Configuration

說明Spring的配置類也是Spring的一個組件。

@EnableAutoConfiguration

這個注解是開啟自動配置的功能。

先看看@AutoConfigurationPackage注解

這個注解是自動配置包,主要是使用的@Import來給Spring容器中導入一個組件 ,這里導入的是Registrar.class。

來看下這個Registrar

就是通過這個方法獲取掃描的包路徑,可以debug看看:

在這行代碼上打了一個斷點

啟動項目

進入斷點處

看看能否獲取掃描的包路徑

已經(jīng)獲取到了包路徑

那那個metadata是什么呢?

可以看到是標注在@SpringBootApplication注解上的DemosbApplication,也就是我們的主配置類:

說白了就是將主配置類(即@SpringBootApplication標注的類)的所在包及子包里面所有組件掃描加載到Spring容器。

所以包名一定要注意。

現(xiàn)在包掃描路徑獲取到了,那具體加載哪些組件呢,看看下面這個注解。

@Import({AutoConfigurationImportSelector.class})

@Import注解就是給Spring容器中導入一些組件,這里傳入了一個組件的選擇器:AutoConfigurationImportSelector。

里面有一個selectImports方法,將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中。

debug運行看看

會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件,并配置好這些組件:

有了自動配置類,免去了我們手動編寫配置注入功能組件等的工作。

那他是如何獲取到這些配置類的呢,看看上面這個方法:

會從META-INF/spring.factories中獲取資源,然后通過Properties加載資源:

Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導入到容器中,自動配置類就生效,幫我們進行自動配置工作。

以前我們需要自己配置的東西,自動配置類都幫我們完成了。

J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure-2.0.3.RELEASE.jar:

比如看看WebMvcAutoConfiguration

都已經(jīng)幫我們配置好了,我們不用再單獨配置了:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot啟動之SpringApplication初始化詳解

    SpringBoot啟動之SpringApplication初始化詳解

    這篇文章主要介紹了SpringBoot啟動之SpringApplication初始化詳解,首先初始化資源加載器,默認為null;斷言判斷主要資源類不能為null,否則報錯,需要的朋友可以參考下
    2024-01-01
  • Spring中@Autowired自動注入map詳解

    Spring中@Autowired自動注入map詳解

    這篇文章主要介紹了Spring中@Autowired自動注入map詳解,  spring是支持基于接口實現(xiàn)類的直接注入的,支持注入map,list等集合中,不用做其他的配置,直接注入,需要的朋友可以參考下
    2023-10-10
  • SpringIOC容器Bean的作用域及生命周期實例

    SpringIOC容器Bean的作用域及生命周期實例

    這篇文章主要為大家介紹了SpringIOC容器Bean的作用域及生命周期實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 關于activemq安裝配置以及啟動錯誤的解決

    關于activemq安裝配置以及啟動錯誤的解決

    這篇文章主要介紹了關于activemq安裝配置以及啟動錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳細介紹idea如何設置類頭注釋和方法注釋(圖文)

    詳細介紹idea如何設置類頭注釋和方法注釋(圖文)

    本篇文章主要介紹了idea如何設置類頭注釋和方法注釋(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java中四種線程池的使用示例詳解

    Java中四種線程池的使用示例詳解

    這篇文章主要給大家介紹了關于Java中四種線程池的使用方法,四種線程池分別包括FixedThreadPool、CachedThreadPool、ScheduledThreadPool以及SingleThreadExecutor,文中給出了詳細的示例代碼供大家參考,需要的朋友們下面來一起看看吧。
    2017-08-08
  • springmvc @RequestBody String類型參數(shù)的使用

    springmvc @RequestBody String類型參數(shù)的使用

    這篇文章主要介紹了springmvc @RequestBody String類型參數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • MyBatis-Ext快速入門實戰(zhàn)

    MyBatis-Ext快速入門實戰(zhàn)

    MyBatis-Ext是MyBatis的增強擴展,和我們平常用的Mybatis-plus非常類似,本文主要介紹了MyBatis-Ext快速入門實戰(zhàn),感興趣的可以了解一下
    2021-10-10
  • 關于spring中定時器的使用教程

    關于spring中定時器的使用教程

    大家應該都有所體會,在很多實際的web應用中,都有需要定時實現(xiàn)的服務,下面這篇文章主要給大家介紹了關于spring中定時器的使用教程,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • springboot+EHcache 實現(xiàn)文章瀏覽量的緩存和超時更新

    springboot+EHcache 實現(xiàn)文章瀏覽量的緩存和超時更新

    這篇文章主要介紹了springboot+EHcache 實現(xiàn)文章瀏覽量的緩存和超時更新,問題描述和解決思路給大家介紹的非常詳細,需要的朋友可以參考下
    2017-04-04

最新評論

佳木斯市| 聊城市| 黔东| 五莲县| 牡丹江市| 肇庆市| 兰州市| 高唐县| 龙口市| 朝阳县| 蛟河市| 大埔区| 竹北市| 德州市| 德州市| 巴林左旗| 曲阳县| 赫章县| 广东省| 建宁县| 福安市| 芮城县| 双峰县| 大连市| 黄大仙区| 冷水江市| 永寿县| 巫山县| 鹿泉市| 佛山市| 商洛市| 磐石市| 琼中| 凌源市| 大城县| 土默特左旗| 塘沽区| 民勤县| 阜新市| 军事| 托克逊县|