今天寫**的時候遇到了***,然後我就鬼使神差的翻了一下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 方法,我們要做的就是監視該方法,當使用者呼叫該方法時...