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

Spring注解驅動之ApplicationListener用法解讀

 更新時間:2022年09月30日 08:51:27   作者:融極  
這篇文章主要介紹了Spring注解驅動之ApplicationListener用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

ApplicationListener概述

ApplicationListener按照字面意思,它應該是Spring里面的應用監(jiān)聽器,也就是Spring為我們提供的基于事件驅動開發(fā)的功能。

也就是說我們只要寫一個監(jiān)聽器來實現(xiàn)ApplicationListener接口,該接口中泛型就是我們要監(jiān)聽的事件,那么如果我們發(fā)布對應的事件,就能在實現(xiàn)的監(jiān)聽器里面處理。

ApplicationListener作用

主要作用就是來監(jiān)聽IOC容器中發(fā)布的一些事件,只有事件發(fā)送便會來觸發(fā)該監(jiān)聽器的回調,從而來完成事件驅動模型的開發(fā)。

ApplicationListener用法

首先,編寫一個類來實現(xiàn)ApplicationListener接口,例如MyApplicationListener,這實際上就是寫了一個監(jiān)聽器。

package com.meimeixia.ext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
// 當然了,監(jiān)聽器這東西要工作,我們還得把它添加在容器中
@Component
public class MyApplicationListener implements ApplicationListener<ApplicationEvent> {
	// 當容器中發(fā)布此事件以后,下面這個方法就會被觸發(fā)
	@Override
	public void onApplicationEvent(ApplicationEvent event) {
		// TODO Auto-generated method stub
		System.out.println("收到事件:" + event);
	}
}

測試功能

package com.meimeixia.test;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.meimeixia.ext.ExtConfig;
public class IOCTest_Ext {
	
	@Test
	public void test01() {
		AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ExtConfig.class);
		
		// 關閉容器
		applicationContext.close();
	}
}

可以看到我們收到了兩個事件,這兩個事件分別是

org.springframework.context.event.ContextRefreshedEvent和org.springframework.context.event.ContextClosedEvent

其中第一個是容器已經刷新完成事件,第二個是容器關閉事件。

而且,從下圖中可以看到,這兩個事件都是ApplicationEvent下面的事件。

只不過現(xiàn)在暫時還沒用到容器開始和容器停止這兩個事件而已。

其實,想必你也已經猜到了,IOC容器在刷新完成之后便會發(fā)布ContextRefreshedEvent事件,一旦容器關閉了便會發(fā)布ContextClosedEvent事件。

我們自己來發(fā)布一個事件

    public static void main(String[] args) {
        final AnnotationConfigApplicationContext applicationContext
                = new AnnotationConfigApplicationContext(ExtConfig.class);
        applicationContext.publishEvent("發(fā)送事件");
        applicationContext.close();
    }
@Component
public class MyApplicationListener implements ApplicationListener<PayloadApplicationEvent> {
    public void onApplicationEvent(PayloadApplicationEvent applicationEvent) {
        System.out.println("收到事件:" + applicationEvent);
        System.out.println(applicationEvent.getPayload());
    }
}

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

相關文章

  • Spring你不知道的一種解耦模式

    Spring你不知道的一種解耦模式

    本文介紹一種方法,服務定位模式Service?Locator?Pattern來解決,它幫助我們消除緊耦合實現(xiàn)及其依賴性,并提出將服務與其具體類解耦
    2023-01-01
  • java web實現(xiàn)郵箱激活與忘記密碼

    java web實現(xiàn)郵箱激活與忘記密碼

    這篇文章主要為大家詳細介紹了java web實現(xiàn)郵箱激活與忘記密碼、重置密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • SpringBoot詳解Banner的使用

    SpringBoot詳解Banner的使用

    這篇文章主要介紹了超個性修改SpringBoot項目的啟動banner的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 深入理解Java設計模式之裝飾模式

    深入理解Java設計模式之裝飾模式

    這篇文章主要介紹了JAVA設計模式之裝飾模式的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2021-11-11
  • SpringBoot整合Redis并且用Redis實現(xiàn)限流的方法 附Redis解壓包

    SpringBoot整合Redis并且用Redis實現(xiàn)限流的方法 附Redis解壓包

    這篇文章主要介紹了SpringBoot整合Redis并且用Redis實現(xiàn)限流的方法 附Redis解壓包,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Java String初始化String域例題解析

    Java String初始化String域例題解析

    這篇文章主要介紹了Java String初始化String域例題解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • IDEA 如何控制編輯左側的功能圖標ICON(操作步驟)

    IDEA 如何控制編輯左側的功能圖標ICON(操作步驟)

    很多朋友被idea左側的圖標不見了這一問題搞的焦頭爛額,不知道該怎么操作,今天小編就交大家如何控制編輯左側的功能圖標 ICON,文字內容不多,主要通過兩張截圖給大家說明,感興趣的朋友一起看看吧
    2021-05-05
  • SpringMVC統(tǒng)一異常處理實例代碼

    SpringMVC統(tǒng)一異常處理實例代碼

    這篇文章主要介紹了SpringMVC統(tǒng)一異常處理實例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • java中TCP實現(xiàn)回顯服務器及客戶端

    java中TCP實現(xiàn)回顯服務器及客戶端

    本文主要介紹了java中TCP實現(xiàn)回顯服務器及客戶端,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • JAVA8 List<List<Integer>> list中再裝一個list轉成一個list操作

    JAVA8 List<List<Integer>> list中再裝一個list轉成一個list操

    這篇文章主要介紹了JAVA8 List<List<Integer>> list中再裝一個list轉成一個list操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論