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

spring中EventListener的使用方式

 更新時(shí)間:2023年12月14日 08:43:30   作者:不喜歡吃貓的魚  
這篇文章主要介紹了spring中EventListener的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring自帶EventListener使用

首先了解下事件監(jiān)聽的基本原理,這里使用到的是設(shè)計(jì)模式中的“’'觀察者模式"”模式。

監(jiān)聽 監(jiān)聽 監(jiān)聽 事件發(fā)布者 監(jiān)聽者A 監(jiān)聽者B 監(jiān)聽者C 監(jiān)聽到后處理自己的邏輯 監(jiān)聽到后處理自己的邏輯 監(jiān)聽到后處理自己的邏輯

整個(gè)的監(jiān)聽過程是通過一個(gè)事件觸發(fā)機(jī)制來實(shí)現(xiàn),首先由事件發(fā)布者發(fā)布事件消息,對應(yīng)的監(jiān)聽者接收到消息后就處理自己的業(yè)務(wù)邏輯。

舉例說明

A是BCD三人的隊(duì)長,今天他們4人要去執(zhí)行一項(xiàng)任務(wù)。

在開始之前隊(duì)長已經(jīng)分別將各個(gè)人任務(wù)分配下去,行動的時(shí)候只要隊(duì)長A向各個(gè)隊(duì)員發(fā)送統(tǒng)一的行動指令“行動”,當(dāng)BCD接收到A的指令“行動”之后就馬上去處理各自的任務(wù)。

這里的A就做為事件發(fā)布者,BCD三人監(jiān)聽A發(fā)送的指令做出相應(yīng)的行動,整體的原理相對來說較為簡單。

示例代碼

創(chuàng)建事件發(fā)布實(shí)體對象

public class PushEvent extends ApplicationEvent {

    private String msg;

    public PushEvent(Object source, String msg) {
        super(source);
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

創(chuàng)建監(jiān)聽者1

@Slf4j
@Service
public class EventListenerDemo {

   @EventListener
   public void eventListener(PushEvent event) {
       log.info(this.getClass().getSimpleName() + "監(jiān)聽到數(shù)據(jù):" + event.getMsg());
   }
}

創(chuàng)建第二個(gè)監(jiān)聽者

@Slf4j
@Service
public class EventListenerDemo1 {

    @EventListener
    public void eventListener(PushEvent event){
        log.info(this.getClass().getSimpleName()+"監(jiān)聽到數(shù)據(jù):"+event.getMsg());
    }
}

測試

@Slf4j
@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private ApplicationContext applicationContext;

    @Test
    public void publish() {
        String msg = "測試數(shù)據(jù)";
        log.info("發(fā)布信息:" + msg);
        ApplicationEvent event = new PushEvent(this, msg);
        applicationContext.publishEvent(event);
    }
}

運(yùn)行結(jié)果

總結(jié)

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

相關(guān)文章

  • SpringBoot application.yml和bootstrap.yml的區(qū)別

    SpringBoot application.yml和bootstrap.yml的區(qū)別

    本文主要介紹了SpringBoot application.yml和bootstrap.yml的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Spring bean為什么默認(rèn)是單例

    Spring bean為什么默認(rèn)是單例

    這篇文章主要介紹了Spring bean為什么默認(rèn)是單例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java工廠模式的深入了解

    Java工廠模式的深入了解

    這篇文章主要為大家介紹了Java工廠模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 6種方法初始化JAVA中的list集合

    6種方法初始化JAVA中的list集合

    這篇文章主要介紹了6種方法初始化JAVA中的list集合,文中講解非常詳細(xì),代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Java程序中添加播放MIDI音樂功能的實(shí)現(xiàn)方法詳解

    Java程序中添加播放MIDI音樂功能的實(shí)現(xiàn)方法詳解

    本篇文章是對在Java程序中添加播放MIDI音樂功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 掌握模塊化開發(fā)Spring Boot子模塊使用技巧

    掌握模塊化開發(fā)Spring Boot子模塊使用技巧

    這篇文章主要為大家介紹了掌握模塊化開發(fā)Spring Boot子模塊使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 基于SpringBoot使用MyBatis插件的問題

    基于SpringBoot使用MyBatis插件的問題

    MyBatis-Plus并不能為我們解決所有問題,例如一些復(fù)雜的SQL,多表聯(lián)查,我們就需要自己去編寫代碼和SQL語句,我們該如何快速的解決這個(gè)問題呢,這個(gè)時(shí)候可以使用MyBatisX插件,今天小編給大家?guī)砹薙pringBoot使用MyBatis插件問題,感興趣的朋友一起看看吧
    2022-03-03
  • java項(xiàng)目實(shí)現(xiàn)圖片等比縮放

    java項(xiàng)目實(shí)現(xiàn)圖片等比縮放

    這篇文章主要為大家詳細(xì)介紹了java項(xiàng)目實(shí)現(xiàn)圖片等比縮放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • android中GridView的用法示例

    android中GridView的用法示例

    這篇文章主要介紹了android中GridView的用法,對于Android初學(xué)者很有參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2014-08-08
  • Java之Spring注解開發(fā)案例詳解

    Java之Spring注解開發(fā)案例詳解

    這篇文章主要介紹了Java之Spring注解開發(fā)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論