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

Spring如何使用注解@DependsOn控制Bean加載順序

 更新時間:2025年06月20日 15:37:04   作者:°Fuhb  
這篇文章主要介紹了Spring如何使用注解@DependsOn控制Bean加載順序,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1. 前言

默認(rèn)情況下,Spring加載Bean的順序是不確定的(或者可以理解為,按編譯后的class文件順序加載)。當(dāng)我們需要控制Bean加載順序以滿足特定的需求時,@DependsOn就派上用場了。

假設(shè)需求場景:

C類加載時要從緩存讀取數(shù)據(jù),D類加載時會初始化緩存數(shù)據(jù)。因此,我們必須控制D類優(yōu)先加載,否則C讀到的緩存會是空的。

2. 代碼實現(xiàn)

先驗證沒有加 @DependsOn 的效果

創(chuàng)建緩存類 MyCache

public class MyCache {
	private static Map<String, Object> cache = new HashMap<>();

	public static Object get(String key){
		return cache.get(key);
	}

	public static void set(String key, Object value){
		cache.put(key, value);
	}
}

創(chuàng)建 C 類,并在構(gòu)造函數(shù)讀取 MyCache:

@Component
public class C {

	public C(){
		System.out.println("name:" + MyCache.get("name"));
	}
}

創(chuàng)建 D 類,并在構(gòu)造函數(shù)初始化 MyCache:

@Component
public class D {
	public D(){
		MyCache.set("name", "fuhb");
	}
}

啟動程序,這時會輸出空的數(shù)據(jù):

name:null

這明顯不符合我們的需求,因此修改 C 類,增加 @DependsOn 注解

@Component
@DependsOn(value = { "d" })
public class C {

	public C(){
		System.out.println("name:" + MyCache.get("name"));
	}
}

重新啟動程序,正常讀取了MyCache的數(shù)據(jù),說明D優(yōu)先于C加載

name:fuhb

總結(jié)

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

相關(guān)文章

  • Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解

    Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解

    這篇文章主要介紹了Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java中接口和抽象類的異同以及具體的使用場景

    Java中接口和抽象類的異同以及具體的使用場景

    文章主要介紹了Java中接口(Interface)和抽象類(AbstractClass)的區(qū)別和聯(lián)系,包括相同點(diǎn)和不同點(diǎn),以及它們在實際開發(fā)中的具體使用場景,結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • eclipse創(chuàng)建springboot項目的三種方式總結(jié)

    eclipse創(chuàng)建springboot項目的三種方式總結(jié)

    這篇文章主要介紹了eclipse創(chuàng)建springboot項目的三種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 關(guān)于Java實體類Serializable序列化接口的作用和必要性解析

    關(guān)于Java實體類Serializable序列化接口的作用和必要性解析

    序列化是將對象狀態(tài)轉(zhuǎn)化為可保持或者傳輸?shù)母袷竭^程,與序列化相反的是反序列化,完成序列化和反序列化,可以存儲或傳輸數(shù)據(jù),一般情況下,在定義實體類時會使用Serializable,需要的朋友可以參考下
    2023-05-05
  • Java細(xì)數(shù)IO流底層原理到方法使用

    Java細(xì)數(shù)IO流底層原理到方法使用

    IO主要用于設(shè)備之間的數(shù)據(jù)傳輸,Java將操作數(shù)據(jù)流的功能封裝到了IO包中,這篇文章主要給大家介紹了關(guān)于Java新手學(xué)習(xí)之IO流簡單使用的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • spring boot前后端傳參的實現(xiàn)

    spring boot前后端傳參的實現(xiàn)

    這篇文章主要介紹了spring boot前后端傳參的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 解決grails服務(wù)端口沖突的辦法(grails修改端口號)

    解決grails服務(wù)端口沖突的辦法(grails修改端口號)

    grails中默認(rèn)的服務(wù)端口為8080,當(dāng)本機(jī)中需要同時啟動兩個不同的項目時,就會造成端口沖突,下面給出解決方法
    2013-12-12
  • Java 合并多個MP4視頻文件

    Java 合并多個MP4視頻文件

    這篇文章主要介紹了Java 合并多個MP4視頻文件的方法,幫助大家利用Java處理視頻,提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • Java中的collection集合類型總結(jié)

    Java中的collection集合類型總結(jié)

    Java的集合類型都是對java.util包中Collection接口的繼承,這里我們主要介紹依賴于collection的一些主分支,一起來看一下Java中的collection集合類型總結(jié)
    2016-05-05
  • 詳解Spring Batch 輕量級批處理框架實踐

    詳解Spring Batch 輕量級批處理框架實踐

    這篇文章主要介紹了詳解Spring Batch 輕量級批處理框架實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

大埔县| 阜平县| 泾源县| 永丰县| 长顺县| 鹤庆县| 盐津县| 鲁山县| 淅川县| 嫩江县| 新营市| 铜川市| 西畴县| 长寿区| 长沙市| 桃源县| 赫章县| 江陵县| 黄冈市| 周宁县| 车险| 龙里县| 永靖县| 措美县| 浙江省| 吴忠市| 正定县| 阳信县| 尚义县| 芜湖市| 紫金县| 珲春市| 康定县| 山东| 固阳县| 湄潭县| 图木舒克市| 大连市| 南通市| 邵武市| 黑龙江省|