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

淺談Spring-boot事件監(jiān)聽(tīng)

 更新時(shí)間:2017年09月23日 09:30:23   作者:八目朱勇銘  
這篇文章主要介紹了淺談Spring-boot事件監(jiān)聽(tīng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

springboot的事件監(jiān)聽(tīng):為bean之間的消息通信提供支持。當(dāng)一個(gè)bean做完一件事以后,通知另一個(gè)bean知曉并做出相應(yīng)處理。這時(shí),我們需要另一個(gè)bean,監(jiān)聽(tīng)當(dāng)前bean所發(fā)生的事件。

實(shí)現(xiàn)步驟:四個(gè)步驟,四種方式

第一種方式

1、自定義事件,一般是繼承ApplicationEvent抽象類(lèi)

2、定義事件監(jiān)聽(tīng)器,一般是實(shí)現(xiàn)ApplicationListener接口

3、1)把監(jiān)聽(tīng)器加入到SpringApplication中:ApplicationListener.addListener();然后發(fā)布事件
      2)或放置到spring容器:@Conponent
      3)或在application.properties配置文件中配置context.listener.classes=監(jiān)聽(tīng)器全類(lèi)名
      4)或編寫(xiě)一個(gè)類(lèi),納入spring容器中,編寫(xiě)一個(gè)帶參的方法,參數(shù)為事件的父類(lèi)或需要監(jiān)聽(tīng)的事件,加上@EventListener

4、發(fā)布事件

第一步:自定義事件,繼承ApplicationEvent抽象類(lèi)

public class MyApplicationEvent extends ApplicationEvent {
  public MyApplicationEvent(Object source) {
    super(source);
  }
}

第二步:自定義事件監(jiān)聽(tīng)器,實(shí)現(xiàn)ApplicationListener接口

public class MyApplicationListener implements ApplicationListener<MyApplicationEvent> {
  @Override
  public void onApplicationEvent(MyApplicationEvent myApplicationEvent) {
    System.out.println(myApplicationEvent.getClass().getName() + "被監(jiān)聽(tīng)......");
  }
}

第三、四步:把監(jiān)聽(tīng)器加入spring中,然后發(fā)布事件

@SpringBootApplication
public class BlogApplication {
  public static void main(String[] args) {
    ConfigurableApplicationContext context = SpringApplication.run(BlogApplication.class, args);
    //把監(jiān)聽(tīng)器加入到SpringApplication中
    context.addApplicationListener(new MyApplicationListener());
    //發(fā)布事件
    context.publishEvent(new MyApplicationEvent(new Object()));
    context.close();
  }
}


第二種方式:換一種方式將監(jiān)聽(tīng)器加入spring容器中(只需修改BlogApplication)

通過(guò)@component注解,將監(jiān)聽(tīng)器加入spring容器中

BlogApplication.class

第三種方式:在application.properties配置文件中配置context.listener.classes=監(jiān)聽(tīng)器全類(lèi)名

spring.properties

第四種方式:編寫(xiě)一個(gè)類(lèi)MyEventHandler,替代上文中的MyApplicationListener,將其納入spring容器中,編寫(xiě)一個(gè)帶參的方法,參數(shù)為事件的父類(lèi)或需要監(jiān)聽(tīng)的事件,加上@EventListener。(參數(shù)的范圍越廣泛,監(jiān)聽(tīng)到的事件越多)

MyEventHandler.class

至此,springboot的四種事件監(jiān)聽(tīng)方式就介紹完畢啦~,以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)map轉(zhuǎn)換成json的方法詳解

    Java實(shí)現(xiàn)map轉(zhuǎn)換成json的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java語(yǔ)言實(shí)現(xiàn)map轉(zhuǎn)換成json的幾種方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-05-05
  • java實(shí)現(xiàn)單機(jī)版五子棋

    java實(shí)現(xiàn)單機(jī)版五子棋

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單機(jī)版五子棋源碼,以及五子棋游戲需要的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java藍(lán)橋杯試題

    java藍(lán)橋杯試題

    這篇文章主要介紹了java藍(lán)橋杯試題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 關(guān)于@ConditionalOnProperty的作用及用法說(shuō)明

    關(guān)于@ConditionalOnProperty的作用及用法說(shuō)明

    這篇文章主要介紹了關(guān)于@ConditionalOnProperty的作用及用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot開(kāi)啟異步調(diào)用方法

    SpringBoot開(kāi)啟異步調(diào)用方法

    這篇文章主要為大家詳細(xì)介紹了SpringBoot開(kāi)啟異步調(diào)用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Spring中循環(huán)依賴的解決方法詳析

    Spring中循環(huán)依賴的解決方法詳析

    這篇文章主要給大家介紹了關(guān)于Spring中循環(huán)依賴的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java實(shí)現(xiàn)的自定義類(lèi)加載器示例

    Java實(shí)現(xiàn)的自定義類(lèi)加載器示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的自定義類(lèi)加載器,結(jié)合具體實(shí)例形式分析了java自定義類(lèi)加載器的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • SpringBoot 如何實(shí)現(xiàn)異步編程

    SpringBoot 如何實(shí)現(xiàn)異步編程

    在SpringBoot的日常開(kāi)發(fā)中,一般都是同步調(diào)用的,但實(shí)際中有很多場(chǎng)景非常適合使用異步來(lái)處理,本文就詳細(xì)的介紹一下SpringBoot 如何實(shí)現(xiàn)異步編程 ,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • Java編程中的一些常見(jiàn)問(wèn)題匯總

    Java編程中的一些常見(jiàn)問(wèn)題匯總

    這篇文章主要介紹了Java編程中的一些常見(jiàn)問(wèn)題匯總,本文總結(jié)的都是一些Java代碼中比較典型的錯(cuò)誤,需要的朋友可以參考下
    2014-09-09
  • 解決在IDEA下使用JUnit的問(wèn)題(解決過(guò)程)

    解決在IDEA下使用JUnit的問(wèn)題(解決過(guò)程)

    很多朋友跟小編反饋在IDEA下使用JUnit進(jìn)行實(shí)例測(cè)試的時(shí)候出現(xiàn)很多奇葩問(wèn)題,今天小編通過(guò)本文給大家分享idea使用JUnit出現(xiàn)問(wèn)題及解決過(guò)程,感興趣的朋友跟隨小編一起看看吧
    2021-05-05

最新評(píng)論