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

SpringBoot自動裝配原理及分析

 更新時(shí)間:2025年09月16日 09:45:54   作者:小霞在敲代碼  
SpringBoot通過@SpringBootApplication注解啟動自動裝配,其中@EnableAutoConfiguration導(dǎo)入AutoConfigurationImportSelect類,讀取META-INF下的配置文件,根據(jù)@Conditional條件篩選并注入符合條件的Bean到IOC容器

SpringBoot的自動裝配原理

要從主啟動類上的 @SpringBootApplication 注解開始

1. @SpringBootApplication 注解 是一個(gè)組合注解

2. 其中自動裝配的最核心

就在 @EnableAutoConfiguration 這個(gè)注解中,@EnableAutoConfiguration 注解 也是一個(gè)組合注解它組合了

其中 @AutoConfigurationPackage 注解 的作用是將主類所在的包以及子包自動注冊為 Spring 的組件掃描路徑,這 也就是你為什么 @Component、@Service、@Controller 等注解的類能被自動發(fā)現(xiàn)的原因。

在 @EnableAutoConfiguration 注解

有一個(gè)非常重要的注解 @Import(AutoConfigurationImportSelect)

1. 它導(dǎo)入了 AutoConfigurationImportSelect 類

這個(gè)類來決定需要加載那些自動配置類。

在 AutoConfigurationImportSelect 類中

它是實(shí)現(xiàn)了 DeferredImportSelector 接口 ,DeferredImportSelector ?接口 又繼承了 ImportSelector ?接口。

在 AutoConfigurationImportSelect 類中 重寫了 selectImports 方法,這個(gè)方法經(jīng)過層層的調(diào)用,最后對讀取到 META-INF 目錄下的以.imports 后綴名結(jié)尾的文件(Boot 2.7 以前的版本讀取的是 spring.factories 文件),讀取到全類名后,會解析注冊條件,也就是 @Conditional 及其衍生注解把滿足注冊條件的 Bean 對象自動注入到 IOC 容器中。

‍總結(jié)

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

相關(guān)文章

  • 詳解Java的引用類型及使用場景

    詳解Java的引用類型及使用場景

    這篇文章主要介紹了詳解Java的引用類型及使用場景,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 通過springboot+mybatis+druid配置動態(tài)數(shù)據(jù)源

    通過springboot+mybatis+druid配置動態(tài)數(shù)據(jù)源

    這篇文章主要介紹了通過springboot+mybatis+druid配置動態(tài)數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • Java 單向隊(duì)列及環(huán)形隊(duì)列的實(shí)現(xiàn)原理

    Java 單向隊(duì)列及環(huán)形隊(duì)列的實(shí)現(xiàn)原理

    本文主要介紹了Java 單向隊(duì)列及環(huán)形隊(duì)列的實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Maven設(shè)置JDK版本的兩種方法實(shí)現(xiàn)

    Maven設(shè)置JDK版本的兩種方法實(shí)現(xiàn)

    本文主要介紹了Maven設(shè)置JDK版本的兩種方法實(shí)現(xiàn),是通過Apache Maven Compiler Plugin插件實(shí)現(xiàn)的,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x變了很多寫法,本文就來介紹一下SpringSecurity6.x多種登錄方式配置小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Springboot繼承Keycloak實(shí)現(xiàn)單點(diǎn)登錄與退出功能

    Springboot繼承Keycloak實(shí)現(xiàn)單點(diǎn)登錄與退出功能

    這篇文章主要介紹了Springboot繼承Keycloak實(shí)現(xiàn)單點(diǎn)登陸與退出,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Spring如何基于注解顯式實(shí)現(xiàn)自動裝配

    Spring如何基于注解顯式實(shí)現(xiàn)自動裝配

    這篇文章主要介紹了Spring如何基于注解顯式實(shí)現(xiàn)自動裝配,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring MVC 關(guān)于controller的字符編碼問題

    Spring MVC 關(guān)于controller的字符編碼問題

    在使用springMVC框架構(gòu)建web應(yīng)用,客戶端常會請求字符串、整型、json等格式的數(shù)據(jù),通常使用@ResponseBody注解使 controller回應(yīng)相應(yīng)的數(shù)據(jù)而不是去渲染某個(gè)頁面。
    2017-03-03
  • Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證

    Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證

    本文主要介紹了Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證,Filter類似于門衛(wèi),你在進(jìn)入之前門衛(wèi)需要盤查你,身份合法進(jìn)入,身份不合法攔截,感興趣的可以了解一下
    2023-11-11
  • 深入理解Mybatis一級緩存

    深入理解Mybatis一級緩存

    客戶端向數(shù)據(jù)庫服務(wù)器發(fā)送同樣的sql查詢語句,如果每次都去訪問數(shù)據(jù)庫,會導(dǎo)致性能的降低,那么怎么提高呢?下面小編給大家分享下mybatis為我們提供了一級緩存的策略
    2016-12-12

最新評論