使用Spring的事件機制實現觀察者模式

2021-10-23 22:49:22 字數 1382 閱讀 7102

1、建立乙個支付事件

//訊息體

private mapmap;

//訂閱主題

private string topic;

public payevent(object source, mapmap, string topic)

public mapgetmap()

public void setmap(mapmap)

public string gettopic()

public void settopic(string topic) }

2、建立事件監聽類

@component

@async

@override

//訂閱主題

string topic = payevent.gettopic();

//訊息體

mapmap = payevent.getmap();

//傳送簡訊

system.out.println("訂閱主題是:" + topic + ";傳送簡訊:" + map.get("msg"));

}}@component

@async

@override

string topic = payevent.gettopic();

mapmap = payevent.getmap();

}}//郵箱監聽

@component

@async

@override

string topic = payevent.gettopic();

mapmap = payevent.getmap();

system.out.println("訂閱主題是:" + topic + ";傳送郵件:" + map.get("msg"));

}}@component

@async

@override

string topic = payevent.gettopic();

mapmap = payevent.getmap();

}} 3、service

@override

public string pay(string channel, string amount) throws exception

string msg = paystrategy.pay(channel, amount);

mapmap = new hashmap<>();

map.put("msg",msg);

//建立乙個支付事件

payevent payevent = new payevent(this, map, "支付");

return msg;

}

使用Spring的事件機制

其次就需要去定義事件,例如流程結束事件,乙個購物系統當訂單流程已經結束了,我們需要通知發貨員發貨,這個時候我們的這個通知發貨,就是乙個觀察者,我們需要實現通知,比如簡訊,郵件通知,來告知物流 下面這幅圖,是我畫的很簡單的乙個圖,這就是核心的方法和核心的類。img 然後我們看看源 是怎麼做的 樣例 自...

Spring事件機制

使用spring事件機制能很好地幫助我們消除不同業務間的耦合關係,也可以提高執行效率,應該根據業務場景靈活選擇.event 說明 contextstartedevent 當容器啟動時發布,即呼叫start 方法,已啟用意味著所有的lifecycle bean都已顯式接收到了start訊號 conte...

Spring的事件機制

data public class myevent extends 複製 public class mylistener implements springboot的啟動類中新增 public static void main string args 複製 component slf4j publi...