spring的自定義監聽事件

2021-08-14 19:32:08 字數 1944 閱讀 3151

今天寫**的時候遇到了***,然後我就鬼使神差的翻了一下spring框架文件,看到了自定義監聽事件,下面是我的收穫分享。

spring中自帶有5種標準事件,contextrefreshedevent,contextstartedevent,contextstoppedevent,contextclosedevent,requesthandledevent。需要了解的話,可自行網上搜尋或者看官方文件。

流程:

public

class

extends

private

static

final

long serialversionuid = -543396148689229096l;

private

final string address;

public

final string test;

public

super(source);

this.address = address;

this.test = test;

}@override

public string tostring()

// accessor and other methods...

}

@component

public

class

implements

private listblacklist;

public

void

this.publisher = publisher;

}public

void

sendemail(string address, string text)

// send email...

}public

void

testlistener(string address, string text)

}

@component

public

class

implements

public

system.out.println("my listener start");

system.out.println(event.tostring());

system.out.println("my listener end");

}}

@restcontroller

public

class

listenercontroller

}

使用瀏覽器訪問打出日誌中有

my listener start

my listener end

這說明我們的自定義事件和***起作用了。

@component

public

class mytestlistener

}

使用註解還有兩好處

1 . 你可以在乙個註解中監聽多種事件

public

void testlistenr()

2 . 還可以通過condition注釋的屬性新增額外的執行時過濾,該過濾器定義乙個spel表示式。

@eventlistener(condition="#event.test == '123'")

public

void

system.out.println("my listener start");

system.out.println(event.tostring());

system.out.println("my listener end");

}

Spring自定義監聽事件

可以監聽物件的建立資料。自定義監聽事件可以監聽容器變化,同時也能精確定位指定事件物件,我們編寫乙個案例演示自定義監聽事件實現流程。定義事件監聽物件 messagenotifier import org.springframework.context.event.contextrefreshedeve...

Spring 監聽事件

contextclosedevent 上下文關閉的時候發布的事件 contextrefreshedevent 上下文初始化或者重新整理的時候發布的事件 requesthandledevent 上下文中,當乙個請求被處理後發布的事件 b 自定義事件及事件的監聽 b 2 發布事件 context.pub...

Spring自定義事件

如果僅僅使用 spring 的內定事件,那顯然是遠遠不夠的,幸好,spring 為我們提供了中自定義發布事件的能力。下面通過例程 來展示如何發布並監聽自定義的事件。在工程中,我們定義乙個 animal 類,為受管 bean 它具有乙個 speak 方法,我們要做的就是監視該方法,當使用者呼叫該方法時...