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

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

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

1. 前言

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

假設(shè)需求場(chǎng)景:

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

2. 代碼實(shí)現(xiàn)

先驗(yàn)證沒(méi)有加 @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");
	}
}

啟動(dòng)程序,這時(shí)會(huì)輸出空的數(shù)據(jù):

name:null

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

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

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

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

name:fuhb

總結(jié)

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

相關(guān)文章

  • java實(shí)現(xiàn)對(duì)map的字典序排序操作示例

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

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

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

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

    Spring?中?PageHelper?不生效問(wèn)題及解決方法

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

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

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

    Java中接口的深入詳解

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

    springboot 如何解決cross跨域請(qǐng)求的問(wèn)題

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

    Java實(shí)現(xiàn)游戲抽獎(jiǎng)算法

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

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

    為了加快 Maven 依賴的下載速度,可以將 Maven 的中央倉(cāng)庫(kù)源修改為國(guó)內(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 里面算是非常常見(jiàn)的一個(gè)功能了,在日常開(kāi)發(fā)中我們肯定多多少少都用過(guò),這里總結(jié)一下關(guān)于 Java 中內(nèi)部類的相關(guān)知識(shí)點(diǎn)和一些使用內(nèi)部類時(shí)需要注意的點(diǎn)。
    2020-02-02

最新評(píng)論