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

spring中EventListener的使用方式

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

spring自帶EventListener使用

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

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

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

舉例說明

A是BCD三人的隊長,今天他們4人要去執(zhí)行一項任務。

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

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

示例代碼

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

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)建第二個監(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);
    }
}

運行結(jié)果

總結(jié)

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

相關(guān)文章

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

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

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

    Spring bean為什么默認是單例

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

    Java工廠模式的深入了解

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

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

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

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

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

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

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

    基于SpringBoot使用MyBatis插件的問題

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

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

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

    android中GridView的用法示例

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

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

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

最新評論