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

SpringBoot自動(dòng)裝配原理及使用說明

 更新時(shí)間:2025年11月05日 10:01:24   作者:Tech_Jia_Hui  
SpringBoot自動(dòng)裝配是基于注解編程和約定優(yōu)于配置的思想,通過@EnableAutoConfiguration注解自動(dòng)將其他組件中的Bean裝載到IoC容器中,減少了XML配置

1、Spring Boot自動(dòng)裝配是什么?

SpringBoot自動(dòng)裝配主要是基于注解編程 和 約定優(yōu)于配置的思想來設(shè)計(jì)的。

自動(dòng)裝配就是由Spring自動(dòng)把其他組件中的Bean裝載到IoC容器中,不需要開發(fā)人員再去配置文件中添加大量的配置。我們只需要在Spring Boot的啟動(dòng)類上添加 @SpringBootApplication 注解,開啟自動(dòng)裝配。

這種自動(dòng)裝配的思想,在Spring 3.x以后就開始支持,我們只要在類上添加 @Enable 注解就可以了,只是沒有像Spring Boot這樣全面地去設(shè)計(jì)。

因此,Spring 和 Spring Boot的最大區(qū)別就是在于Spring Boot的自動(dòng)裝配。那自動(dòng)裝配的原理又是什么呢?

2、自動(dòng)裝配原理

@SpringBootApplication這個(gè)注解是暴露給用戶使用的入口,它的底層是由 @EnableAutoConfiguration這個(gè)注解來實(shí)現(xiàn)的。

這樣一個(gè)自動(dòng)裝配的實(shí)現(xiàn),我把它歸納為以下三個(gè)核心步驟:

第一步:?jiǎn)?dòng)依賴組件的時(shí)候,組件中必須要包含 @Configuration 的配置類,在這個(gè)配置類里面聲明為 @Bean 注解,就將方法的返回值或者屬性值 注入到IoC容器中。

第二步:如果是使用第三方j(luò)ar包,Spring Boot采用SPI機(jī)制,只需要在/META-INF/目錄下增加spring.factories配置文件。然后,Spring Boot會(huì)根據(jù)約定規(guī)則,自動(dòng)使用SpringFactoriesLoader來加載配置文件中的內(nèi)容。

第三步:Spring獲取到第三方j(luò)ar中的配置以后,會(huì)使用調(diào)用ImportSelector接口來完成動(dòng)態(tài)加載。

這樣的設(shè)計(jì)的好處在于,大幅減少了臃腫的配置文件,而且各模塊之間的依賴實(shí)現(xiàn)了深度解耦。比如,我們使用Spring創(chuàng)建Web程序時(shí)需要導(dǎo)入非常多的Maven依賴,而Spring Boot只需要一個(gè)Maven依賴來創(chuàng)建Web程序,并且Spring Boot還把我們最常用的依賴都放到了一起,我們只需要 引入 spring-boot-starter-web 這一個(gè)依賴就可以完成一個(gè)簡(jiǎn)單的Web應(yīng)用。

以前用Spring的時(shí)候需要XML文件配置開啟一些功能,現(xiàn)在Spring Boot不用XML配置了,只需要寫一個(gè), 加了@Configuration注解 或者實(shí) 現(xiàn)對(duì)應(yīng)接口的配置類就可以了。

3、總結(jié)

①、通過@Import(AutoConfigurationImportSelector.class),導(dǎo)入配置類,這里并不是單個(gè)配置類的導(dǎo)入

②、AutoConfigurationImportSelector實(shí)現(xiàn)了ImportSelector類,重寫了selectImports方法,用于實(shí)現(xiàn)選擇性的批量配置類的裝配

③、通過Spring的SpringFactoryLoader機(jī)制,掃描classpath下的META/spring.factories文件,讀取需要實(shí)現(xiàn)自動(dòng)裝配的配置類

④、通過條件篩選,把不符合的移除,最終實(shí)現(xiàn)自動(dòng)裝配

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

相關(guān)文章

  • java中ThreadLocal的基本原理

    java中ThreadLocal的基本原理

    本文講解了java中ThreadLocal的一些基本原理,文中關(guān)于ThreadLocal的原理講解的非常詳細(xì),感興趣的朋友一起看看吧
    2021-08-08
  • 阿里四面之Spring Exception的原理解析

    阿里四面之Spring Exception的原理解析

    本文給大家介紹阿里四面之Spring Exception的原理解析,本文通過錯(cuò)誤場(chǎng)景分析給大家詳細(xì)介紹Spring異常處理流程,感興趣的朋友一起看看吧
    2021-10-10
  • Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)

    Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)

    這篇文章主要為大家詳細(xì)介紹了Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Maven版本沖突的原因分析和解決指南

    Maven版本沖突的原因分析和解決指南

    我們可能會(huì)因?yàn)镸aven功能變更、性能提升、修復(fù)漏洞等多種原因,去更換第三方庫或框架,此時(shí)就容易發(fā)生版本沖突,本期我們就介紹一下相關(guān)知識(shí),以及如何解決版本沖突方法,需要的朋友可以參考下
    2025-11-11
  • Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    這篇文章主要介紹了Idea?springboot?springCloud熱加載熱調(diào)試常用的兩種方式,在項(xiàng)目開發(fā)的過程中,需要修改調(diào)試的時(shí)候偶每次都需要重啟項(xiàng)目浪費(fèi)時(shí)間,下面是我整理的兩種常用的兩種方式,需要的朋友可以參考下
    2023-04-04
  • Java自定義互斥鎖的實(shí)現(xiàn)方法示例

    Java自定義互斥鎖的實(shí)現(xiàn)方法示例

    在多線程編程中互斥鎖是確保共享資源安全訪問的重要機(jī)制,這篇文章主要介紹了Java自定義互斥鎖實(shí)現(xiàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-11-11
  • Java構(gòu)造器(構(gòu)造方法)能否可以被重寫

    Java構(gòu)造器(構(gòu)造方法)能否可以被重寫

    這篇文章主要介紹了Java構(gòu)造器(構(gòu)造方法)能否可以被重寫問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java 中的注解詳解及示例代碼

    Java 中的注解詳解及示例代碼

    本文主要介紹Java 中的注解,這里提供了詳細(xì)的相關(guān)資料,及示例代碼,幫助大家學(xué)習(xí)理解,有興趣的小伙伴可以參考下
    2016-08-08
  • IDEA的下載和使用安裝詳細(xì)圖文教程

    IDEA的下載和使用安裝詳細(xì)圖文教程

    這篇文章主要介紹了IDEA的下載和使用安裝,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 解析springBoot-actuator項(xiàng)目構(gòu)造中health端點(diǎn)工作原理

    解析springBoot-actuator項(xiàng)目構(gòu)造中health端點(diǎn)工作原理

    這篇文章主要介紹了springBoot-actuator中health端點(diǎn)工作原理,對(duì)spring-boot-actuator的項(xiàng)目構(gòu)造,工作原理進(jìn)行了全面的梳理,側(cè)重health健康檢查部分
    2022-02-02

最新評(píng)論

岢岚县| 四平市| 刚察县| 临武县| 鸡泽县| 灵台县| 凌海市| 合山市| 黎川县| 米林县| 洪洞县| 涟源市| 洛浦县| 宜兴市| 高州市| 康乐县| 隆林| 招远市| 汉寿县| 通海县| 历史| 罗山县| 北川| 晋中市| 高邑县| 肇东市| 威海市| 东乡族自治县| 九龙城区| 哈尔滨市| 营口市| 乌拉特后旗| 万山特区| 剑川县| 房山区| 恭城| 乐业县| 东安县| 青浦区| 镇赉县| 玉门市|