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

SpringBoot自動裝配原理及使用說明

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

1、Spring Boot自動裝配是什么?

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

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

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

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

2、自動裝配原理

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

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

第一步:啟動依賴組件的時候,組件中必須要包含 @Configuration 的配置類,在這個配置類里面聲明為 @Bean 注解,就將方法的返回值或者屬性值 注入到IoC容器中。

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

第三步:Spring獲取到第三方jar中的配置以后,會使用調用ImportSelector接口來完成動態(tài)加載。

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

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

3、總結

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

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

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

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

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

相關文章

  • java中ThreadLocal的基本原理

    java中ThreadLocal的基本原理

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

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

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

    Java項目實現(xiàn)模擬ATM機

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

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

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

    Idea?springboot?springCloud熱加載熱調試兩種常用方式

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

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

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

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

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

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

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

    IDEA的下載和使用安裝詳細圖文教程

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

    解析springBoot-actuator項目構造中health端點工作原理

    這篇文章主要介紹了springBoot-actuator中health端點工作原理,對spring-boot-actuator的項目構造,工作原理進行了全面的梳理,側重health健康檢查部分
    2022-02-02

最新評論

德江县| 华坪县| 垫江县| 白山市| 平定县| 饶平县| 海兴县| 三都| 宜春市| 赤水市| 丽水市| 元朗区| 昌黎县| 清河县| 平邑县| 临江市| 太仆寺旗| 华容县| 内江市| 澎湖县| 平邑县| 长海县| 扶余县| 辉南县| 六盘水市| 桃江县| 屯留县| 康平县| 共和县| 佛冈县| 乡城县| 仙游县| 渑池县| 香港| 怀来县| 冕宁县| 蕉岭县| 紫阳县| 本溪市| 金川县| 冷水江市|