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

Spring @OnApplicationEvent用法示例小結(jié)(典型用法)

 更新時(shí)間:2025年06月19日 10:41:15   作者:張紫娃  
這篇文章主要介紹了Spring @OnApplicationEvent用法示例小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

典型用法

監(jiān)聽自定義事件

// 定義事件類
public class UserRegisteredEvent extends ApplicationEvent {
    private final String username;
    public UserRegisteredEvent(Object source, String username) {
        super(source);
        this.username = username;
    }
    public String getUsername() {
        return username;
    }
}
// 發(fā)布事件
@Service
public class UserService {
    @Autowired
    private ApplicationEventPublisher eventPublisher;
    public void registerUser(String username) {
        System.out.println("用戶注冊(cè):" + username);
        eventPublisher.publishEvent(new UserRegisteredEvent(this, username));
    }
}
// 監(jiān)聽事件
@Component
public class UserRegistrationListener {
    @OnApplicationEvent
    public void onUserRegistered(UserRegisteredEvent event) {
        System.out.println("監(jiān)聽到用戶注冊(cè)事件:" + event.getUsername());
    }
}

監(jiān)聽內(nèi)置 Spring 應(yīng)用事件

Spring 內(nèi)置了一些標(biāo)準(zhǔn)事件,可以直接使用 @OnApplicationEvent 進(jìn)行監(jiān)聽。

// 監(jiān)聽?wèi)?yīng)用啟動(dòng)完成事件
@Component
public class StartupEventListener {
    @OnApplicationEvent
    public void onApplicationReady(ApplicationReadyEvent event) {
        System.out.println("應(yīng)用已啟動(dòng)完成");
    }
}

異步處理事件(結(jié)合 @Async)

默認(rèn)情況下,事件監(jiān)聽是同步執(zhí)行的。若希望異步處理,可結(jié)合 @Async 注解。

@Component
public class AsyncEventListener {
    @OnApplicationEvent
    @Async
    public void handleUserRegistered(UserRegisteredEvent event) {
        System.out.println("【異步】收到用戶注冊(cè)事件:" + event.getUsername());
    }
}

條件過濾事件(SpEL 表達(dá)式)

可以使用 condition 屬性進(jìn)行條件判斷,僅當(dāng)滿足條件時(shí)才執(zhí)行監(jiān)聽方法。

@Component
public class ConditionalEventListener {
    @OnApplicationEvent(condition = "#event.username.startsWith('admin')")
    public void onAdminUserRegistered(UserRegisteredEvent event) {
        System.out.println("管理員用戶注冊(cè):" + event.getUsername());
    }
}

多事件監(jiān)聽(泛型支持)

一個(gè)監(jiān)聽方法可以監(jiān)聽多個(gè)事件類型,只需將參數(shù)聲明為它們的共同父類或接口。

@Component
public class MultiEventLogger {
    @OnApplicationEvent
    public void logEvent(ApplicationEvent event) {
        System.out.println("監(jiān)聽到事件:" + event.getClass().getSimpleName());
    }
}

到此這篇關(guān)于Spring @OnApplicationEvent用法示例小結(jié)的文章就介紹到這了,更多相關(guān)Spring @OnApplicationEvent用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springmvc處理ajax請(qǐng)求并返回json數(shù)據(jù)

    Springmvc處理ajax請(qǐng)求并返回json數(shù)據(jù)

    這篇文章主要介紹了Springmvc處理ajax請(qǐng)求并返回json數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    這篇文章主要介紹了Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • MybatisPlus逆向工程的項(xiàng)目實(shí)踐

    MybatisPlus逆向工程的項(xiàng)目實(shí)踐

    Mybatis-Plus逆向工程,是MP官方提供的一款代碼生成器,可以自動(dòng)生成對(duì)應(yīng)的實(shí)體類、Mapper接口和配置文件,,本文主要介紹了MybatisPlus逆向工程的項(xiàng)目實(shí)踐,感興趣的可以了解一下
    2024-03-03
  • Java字符串的處理方式及作用介紹

    Java字符串的處理方式及作用介紹

    StringBuilder、StringBuffer?和?String是Java中處理字符串的三種主要方式,每種有不同的特點(diǎn)和適用場(chǎng)景,下面給大家介紹Java字符串的處理方法及作用介紹
    2025-04-04
  • JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例解析

    JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了JavaWeb中的文件上傳和下載功能的實(shí)現(xiàn),在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能,需要的朋友可以參考下
    2015-08-08
  • Java獲取最后插入MySQL記錄的自增ID值的3種方法

    Java獲取最后插入MySQL記錄的自增ID值的3種方法

    這篇文章介紹了Java獲取最后插入MySQL記錄的自增ID值的3種方法,有需要的朋友可以參考需要
    2013-08-08
  • 關(guān)于java中線程安全問題詳解

    關(guān)于java中線程安全問題詳解

    最近工作中遇到不少多線程問題,但自己一直對(duì)多線程的理解比較表層,所以深入研究了一番,下面這篇文章主要給大家介紹了關(guān)于java中線程安全問題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Java 中的 Function 接口案例講解

    Java 中的 Function 接口案例講解

    Java8引入Function和Consumer函數(shù)式接口,用于處理輸入輸出及單參數(shù)操作,支持基本類型和多參數(shù)變體,應(yīng)用于StreamAPI、策略模式及異常處理包裝,提升代碼簡(jiǎn)潔性與性能,本文給大家介紹Java中的Function接口案例,感興趣的朋友一起看看吧
    2025-06-06
  • Spring AOP詳解面向切面編程思想

    Spring AOP詳解面向切面編程思想

    Spring是一個(gè)廣泛應(yīng)用的框架,SpringAOP則是Spring提供的一個(gè)標(biāo)準(zhǔn)易用的aop框架,依托Spring的IOC容器,提供了極強(qiáng)的AOP擴(kuò)展增強(qiáng)能力,對(duì)項(xiàng)目開發(fā)提供了極大地便利
    2022-06-06
  • Java繪制迷宮動(dòng)畫并顯示的示例代碼

    Java繪制迷宮動(dòng)畫并顯示的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)繪制迷宮動(dòng)畫并顯示,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-08-08

最新評(píng)論

镇原县| 尼木县| 靖远县| 信阳市| 吉木萨尔县| 磐安县| 辰溪县| 长武县| 大名县| 东港市| 乳源| 灵石县| 红桥区| 吉木乃县| 迭部县| 张家港市| 政和县| 永春县| 阜新市| 娱乐| 贵德县| 牟定县| 涟源市| 嘉兴市| 称多县| 马尔康县| 吴川市| 鄂托克前旗| 龙口市| 镇原县| 林口县| 马关县| 绥芬河市| 清原| 潜山县| 阿拉尔市| 沙洋县| 楚雄市| 刚察县| 尤溪县| 龙门县|