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

Springboot把外部依賴包納入Spring容器管理的兩種方式

 更新時間:2023年07月30日 09:26:59   作者:凡夫販夫  
這篇文章主要給大家介紹了Springboot把外部依賴包納入Spring容器管理的兩種方式,Spring.factories和org.springframework.boot.autoconfigure.AutoConfiguration.imports,有感興趣的小伙伴可以參考閱讀本文

前言

在Spring boot項目中,凡是標記有@Component、@Controller、@Service、@Configuration、@Bean等注解的類,Spring boot都會在容器啟動的時候,自動創(chuàng)建bean并納入到Spring容器中進行管理,這樣就可以使用@Autowired等注解,在需要使用bean的業(yè)務類中進行注入。這里起到關鍵作用的就是@ComponentScan,這是一個bean掃描注解,默認掃描的目錄是啟動類所在包下的所有包及子包,也就是說凡是標記了@Componetn等注解類,Spring boot都會自動創(chuàng)建bean納入Spring容器管理。

問題

一個問題來了,是什么呢?如果我封裝了一套公共的業(yè)務組件,也想把些組件類放到Spring容器里,方便在業(yè)務里注入使用,這時候應該怎么辦呢?

解決方法

最先想到的就是,應該就是更新@ComponentScan的掃描路徑了吧,除了這個還有沒有更好方法呢?答案是有的,且聽我細細道來的。

主要是兩種方式:

第一種:Spring.factories

如果了解過Spring boot的自動裝配的原理以及如何自定義自己的starter,對這個配置文件應該會很熟悉,Spring boot能夠實現開箱即用,省去了許多繁瑣的配置,spring-boot-autoconfigure.jar下的/META-INF/spring.factories配置文件起了關鍵作用。那個類里有什么呢?仔細會發(fā)現spring.factories中配置信息是key-value的形式,key是spring中預留的擴展點配置接口的全限定類名,vlue則是具體的配置類的全限定類名,如果有多個配置類,則以英文逗號隔開;

如果公共的業(yè)務組件封裝好了,就可以在resources目錄下,創(chuàng)建/META-INF/spring.factories配置文件,并實現Spring預留的擴展點配置接口,使用的時候引入到項目中,然后在Spring容器啟動的時候,會讀取classpath下所有的spring.factories中的配置類,然后納入到Spring容器中。當然這個處理過程是很復雜的,這里不過多展開,我在網上找到了一張圖,可以幫助你很好的理解整個過程,有興趣的小伙們,不妨根據圖上內容,再結合spring源碼再深入研究一下。

第二種:org.springframework.boot.autoconfigure.AutoConfiguration.imports

其實org.springframework.boot.autoconfigure.AutoConfiguration.imports文件功能和Sping.factories的作用是一樣的,這個用法是Spring boot2.7以后出現的,目的也是為引入外部的jar,把外部bean納入到Spring容器,實現外部組件與Spring的集成,主要的區(qū)別在于引入的方式有些不同,spring.factories這種方式是在resources下創(chuàng)建/META-INF/spring.factories配置文件,內部是key-value的形式,這種則是創(chuàng)建/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,內部是具體的要導入到Spring環(huán)境的中的配置類。

兩種方式有一些區(qū)別,不過都是用來實現自動裝配的。

到此這篇關于Springboot把外部依賴包納入Spring容器管理的兩種方式的文章就介紹到這了,更多相關外部依賴包納入Spring容器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解Java實現JSONArray轉Map的三種實現方式

    詳解Java實現JSONArray轉Map的三種實現方式

    本文主要介紹了Java實現JSONArray轉Map的三種實現方式,本文只是自己常用的三種,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot引入Redis報org.springframework.data.redis.core.RedisTemplate類找不到錯誤問題

    SpringBoot引入Redis報org.springframework.data.redis.core.RedisT

    這篇文章主要介紹了SpringBoot引入Redis報org.springframework.data.redis.core.RedisTemplate類找不到錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • SpringBoot實現動態(tài)數據源切換的項目實踐

    SpringBoot實現動態(tài)數據源切換的項目實踐

    在實際開發(fā)過程中,我們經常遇到需要同時操作多個數據源的情況,本文主要介紹了SpringBoot實現動態(tài)數據源切換的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • SpringBoot的自動配置原理解析

    SpringBoot的自動配置原理解析

    這篇文章主要介紹了SpringBoot的自動配置原理解析,SpringBoot的自動配置要從它的啟動類@SpringBootApplication說起,點進注解,@Target設置當前注解可以標記在哪,(ElementType.type)表示標注在類上面,需要的朋友可以參考下
    2023-08-08
  • 關于SpringCloudStream配置問題

    關于SpringCloudStream配置問題

    這篇文章主要介紹了關于SpringCloudStream配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Socket編程簡單示例(聊天服務器)

    Socket編程簡單示例(聊天服務器)

    socket編程是在不同的進程間進行網絡通訊的一種協(xié)議,下面這篇文章主要給大家介紹了關于Socket編程簡單示例的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Java的SpringMVC中控制器返回XML數據問題

    Java的SpringMVC中控制器返回XML數據問題

    這篇文章主要介紹了Java的SpringMVC中控制器返回XML數據問題,控制器是處理HTTP請求的組件,它們接收來自客戶端的請求,并將其轉換為適當的響應,這些響應可以是動態(tài)生成的?HTML?頁面,也可以是JSON或XML格式的數據,需要的朋友可以參考下
    2023-07-07
  • Java實現添加,讀取和刪除Excel圖片的方法詳解

    Java實現添加,讀取和刪除Excel圖片的方法詳解

    本文介紹在Java程序中如何添加圖片到excel表格,以及如何讀取、刪除excel表格中已有的圖片。文中的示例代碼講解詳細,感興趣的可以學習一下
    2022-05-05
  • Spring自定義注解實現接口版本管理

    Spring自定義注解實現接口版本管理

    這篇文章主要介紹了Spring自定義注解實現接口版本管理,RequestMappingHandlerMapping類是與 @RequestMapping相關的,它定義映射的規(guī)則,即滿足怎樣的條件則映射到那個接口上,需要的朋友可以參考下
    2023-11-11
  • 詳解Mybatis中常用的約束文件

    詳解Mybatis中常用的約束文件

    這篇文章主要介紹了詳解Mybatis中常用的約束文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論