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

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實現(xiàn)對map的字典序排序操作示例

    java實現(xiàn)對map的字典序排序操作示例

    這篇文章主要介紹了java實現(xiàn)對map的字典序排序操作,結(jié)合實例形式分析了java參照微信官網(wǎng)算法實現(xiàn)的字典序排序操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,下面我們就來學(xué)習(xí)一下EasyExcel如何實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式吧
    2023-11-11
  • Spring?中?PageHelper?不生效問題及解決方法

    Spring?中?PageHelper?不生效問題及解決方法

    這篇文章主要介紹了Spring?中?PageHelper?不生效問題,使用這個插件時要注意版本的問題,不同的版本可能 PageHelper 不會生效,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java 實現(xiàn)實時監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    Java 實現(xiàn)實時監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    本文中主要陳述一種實時監(jiān)聽文件夾中是否有文件增加的功能,可用于實際文件上傳功能的開發(fā)。本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-09-09
  • Java中接口的深入詳解

    Java中接口的深入詳解

    在Java語言中,接口由類來實現(xiàn)以便使用接口中的方法,這篇文章主要給大家介紹了關(guān)于Java中接口的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • springboot 如何解決cross跨域請求的問題

    springboot 如何解決cross跨域請求的問題

    這篇文章主要介紹了springboot 如何解決cross跨域請求的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實現(xiàn)游戲抽獎算法

    Java實現(xiàn)游戲抽獎算法

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)游戲抽獎算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • IDEA Maven源修改為國內(nèi)阿里云鏡像的正確方式

    IDEA Maven源修改為國內(nèi)阿里云鏡像的正確方式

    為了加快 Maven 依賴的下載速度,可以將 Maven 的中央倉庫源修改為國內(nèi)的鏡像,比如阿里云鏡像,以下是如何在 IntelliJ IDEA 中將 Maven 源修改為阿里云鏡像的詳細(xì)步驟,感興趣的同學(xué)可以參考閱讀一下
    2024-09-09
  • 如何使用JAVA調(diào)用SHELL

    如何使用JAVA調(diào)用SHELL

    這篇文章主要介紹了如何使用JAVA調(diào)用SHELL,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java內(nèi)部類詳解

    Java內(nèi)部類詳解

    內(nèi)部類在 Java 里面算是非常常見的一個功能了,在日常開發(fā)中我們肯定多多少少都用過,這里總結(jié)一下關(guān)于 Java 中內(nèi)部類的相關(guān)知識點(diǎn)和一些使用內(nèi)部類時需要注意的點(diǎn)。
    2020-02-02

最新評論