Spring 註解事件Event

2021-07-22 04:44:33 字數 2383 閱讀 1857

從spring的4.2版本後,開始支援註解來進行事件廣播接收,這使得我們非常方便

當然了spring也支援jms訊息中介軟體,這個就可以做多個系統整合了,感覺有點偏題了,先看看事件怎麼通過註解來開發

先來看看支援哪些預設事件

event

描述contextrefreshedeventcontextstartedeventspring初始化完,時觸發

contextstoppedeventspring停止後觸發,乙個停止了的動作,可以通過start()方法從新啟動

contextclosedeventspring關閉,所有bean都被destroyed掉了,這個時候不能被重新整理,或者從新啟動了

requesthandledevent請求經過dispatcherservlet時被觸發,在request完成之後

先看看程式

/**

*@author carl

*@date 2016/8/28

*/public

class

emailservice

implements

private listblacklist;

public

void

setblacklist(listblacklist)

public

void

this.publisher = publisher;

}/**

* 具體廣播類

*@param address

*@param text

*/public

void

sendemail(string address, string text)

// send email...

}}

/**

*@author carl

*@date 2016/8/28

*/public

class

blacklistevent

extends

private string address;

private string test;

public

blacklistevent(object source, string address, string test)

public string getaddress()

public

void

setaddress(string address)

public string gettest()

public

void

settest(string test)

}

/**

*@author carl

*@date 2016/8/28

*/public

class

blacklistnotifier

implements

@eventlistener

public

void

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

public

void

}@eventlistener()

public

void

handlecontextstart()

/*** 引數可以給blacklistevent 可以不給

*/@eventlistener(classes = )

public

void

handleblacklistevent()

}

解析一下這個註解怎麼用,猶如上面的程式,除了實現介面外,可以通過@eventlistener註解來實現

這裡主要對一些服務以及接受廣播bean的註冊,以便接受

/**

* 配置

*@author carl

*@date 2016/8/28

*/@configuration

public

class

@bean

public emailservice emailservice()

@bean

public blacklistnotifier notifier()

}

SPRING註解事務管理

quote 大家在使用spring的註解式事務管理時,對事務的傳播行為和隔離級別可能有點不知所措,下邊就詳細的介紹下以備方便查閱。事物註解方式 transactional 當標於類前時,標示類中所有方法都進行事物處理 例子 transactional public class testservice...

spring註解事務傳播行為

在 service 類前加上 transactional 宣告這個 service 所有方法需要事務管理。每乙個業務方法開始時都會開啟乙個事務。spring 預設情況下會對執行期例外 runtimeexception 進行事務回滾。這個例外是 unchecked 如果遇到 checked 意外就不回...

Spring的Event事件處理使用詳解

spring中使用事件非常簡單,只需要以下的幾個步驟 public class userregisterevent extends public string getusername 定義傳送郵件和發放優惠券的監聽 component order 2 可以使用order指定順序,越小優先順序越高 p...