如果僅僅使用
spring
的內定事件,那顯然是遠遠不夠的,幸好,
spring
為我們提供了中自定義發布事件的能力。下面通過例程
來展示如何發布並監聽自定義的事件。
在工程中,我們定義乙個
animal
類,為受管
bean
,它具有乙個
speak
方法,我們要做的就是監視該方法,當使用者呼叫該方法時觸發
animalspeakevent
事件。具體操作如下: 1
package
ioc.test;23
import45
public
class
animalspeakevent
extends67
private
static
final
long
serialversionuid =1l
;89private
string animalname;
1011
public
animalspeakevent(object source)
1415
public
animalspeakevent(object source,string animalname)
1920
public
string getanimalname()
2324}25
建立好該事件類後,就應該把它再合適的時候發布出去。既然它時乙個「動物講話事件」,那麼就應該再動物「講話」的時候發布,如何發布呢?我們知道要發布乙個事件,就必須要呼叫
的publishevent
方法。要在
animal
類中獲得
的例項,就要實現
介面,**如下: 1
package
ioc.test;23
//import省略45
public
class
animal
implements67
private89
private
string name;
1011
private
intage;
1213
public
string speak()
1819
20public
void
throws
bean***ception
2324
//getet和seter省略
2526}27
到目前為之,我們已經在
animal
類中把事件發布出去了,現在要監聽該事件的發生了,至於監聽方法,前面已經演示過,直接上**: 1
ackage ioc.test;23
import
4import56
public
class
animaleventlistener
implements78
public
void9if
(event
instanceof
animalspeakevent) 13}
14}15
配置好bean
,為animalbean
注入值,配置檔案如下: 1
xml version="1.0" encoding="utf-8"
?>
2<
beans
…………
>34
<
bean
id="listener"
class
="ioc.test.animaleventlistener"
/>56
<
bean
id="animal"
class
="ioc.test.animal"
>
7<
property
name
="name"
value
="老虎"
/>
8<
property
name
="age"
value
="5"
/>
9bean
>
1011
beans
>12
現在應該來測試一下了,看看我們的自定義的事件是不是會再動物「講話」的時候發生,測試類
testmain
**如下: 1
package
ioc.test;23
import
4import56
public
class
testmain 19}
20 執行該類中的主方法,輸出結果如下:
可以看到,再動物「講話「之前,我們的事件***監聽到「動物講話」,並輸出了講話動物的名字。
spring 自定義事件
首先我們先寫乙個自定義的登入事件。loginformevent.as package com.events 包,可以理解成目錄,在com events 下 flex中的方法重寫原來是這個樣,就順便寫到這了。override public function clone event 然後我們就寫自定義元...
Spring自定義監聽事件
可以監聽物件的建立資料。自定義監聽事件可以監聽容器變化,同時也能精確定位指定事件物件,我們編寫乙個案例演示自定義監聽事件實現流程。定義事件監聽物件 messagenotifier import org.springframework.context.event.contextrefreshedeve...
自定義事件
public event eventhandleropenprogress private void onopenprogress progresseventargs e if openprogress null openprogress this,e public class progressev...