本篇博客我們就來聊一下Spring框架中的觀察者模式的應用,即事件的發(fā)送與監(jiān)聽機制。之前我們已經(jīng)剖析過觀察者模式的具體實現(xiàn),以及使用Swift3.0自定義過通知機制。所以本篇博客對于事件發(fā)送與監(jiān)聽的底層實現(xiàn)就不做過多贅述了。下方會給出Spring中是如何進行事件的發(fā)送與監(jiān)聽的。聊完事件的發(fā)送與監(jiān)聽,我們再來聊一下如何使用@Profile注解來切換“生產(chǎn)環(huán)境”與“開發(fā)環(huán)境”。
一、Spring中的事件發(fā)送與監(jiān)聽
Spring中的事件發(fā)送與監(jiān)聽說白了就是廣播。由Publisher來發(fā)送Event,有Listener來接收Event。Publisher和Listenter是一對多的關系,當Publisher在發(fā)送Event時,并不確定是哪些Listener會收到該發(fā)布的事件。當然再進一步說,Spring的事件發(fā)送與監(jiān)聽的本質還是觀察者模式的具體實現(xiàn)。之前的博客我們拿Swift語言來具體的實現(xiàn)和分析了觀察者模式,關于觀察者模式的具體內(nèi)容,請移步于《自己動手使用“觀察者模式”實現(xiàn)通知機制》。
該部分關于“觀察者模式”的東西就不做過多贅述了,主要就來看一下在Spring中是如何使用事件發(fā)送以及事件監(jiān)聽的。
1、事件發(fā)送與監(jiān)聽的原理圖
一直看代碼比較枯燥,那么我們就來一張原理圖來看一下Spring框架中的事件發(fā)布者(Publisher)、事件(Event)、監(jiān)聽者(Listener)之間的關系。上面也提到了,Publisher與Listener之間的