1.spring integration 's architecture
主要提供兩個(gè)功能:
在系統(tǒng)內(nèi)提供實(shí)現(xiàn)輕量級(jí)、事件驅(qū)動(dòng)交互行為的框架
在系統(tǒng)間提供一種基于適配器的平臺(tái),以支持靈活的系統(tǒng)間交互
2.spring integration對(duì)于企業(yè)集成模式的支持
2.1Message:一個(gè)信息的單元,通常有消息頭(header)和消息內(nèi)容(payload)組成
2.2Message channel:消息處理節(jié)點(diǎn)之間的連接,負(fù)責(zé)將Message從生產(chǎn)者傳輸?shù)较M(fèi)者。
根據(jù)消費(fèi)者的多少,可分為point to point和publish-subscribe兩種
根據(jù)消息傳輸方式的不同,分為同步和異步兩種
2.3Message Endpoint:消息處理節(jié)點(diǎn),消息從節(jié)點(diǎn)進(jìn)入通道,也是從節(jié)點(diǎn)離開通道
幾個(gè)常見的Message EndPoint:
CHANNEL ADAPTER,用于連接該適配器的特點(diǎn)是單向消息流的,要么是消息通過該適配器進(jìn)入通道,要么是消息通過該適配器離開通道
MESSAGING GATEWAY,處理的消息流和Channel Adapter不同,不是單向的,即有進(jìn)入該節(jié)點(diǎn)的消息,也會(huì)從該節(jié)點(diǎn)發(fā)出消息。
SERVICE ACTIVATOR,該節(jié)點(diǎn)調(diào)用服務(wù)來處理輸入的消息,并將服務(wù)返回的數(shù)據(jù)發(fā)送到輸出通道。在spring integration中,調(diào)用的方法被限定為本地方法調(diào)用。
ROUTER,路由器,將輸入的消息路由到某個(gè)輸出通道中
SPLITTER,將輸入的消息拆分成子消息
AGGREGATOR,將輸入的多個(gè)消息合并為一個(gè)消息
3.觀看書中例子hello-world思考
測(cè)試gateway時(shí),下面代碼向通道names內(nèi)放入消息world?
然后service-activator從names通道中獲得消息world,調(diào)用方法sayHello返回值到給gateway?
解釋:gateway有一個(gè)service-interface的屬性,這個(gè)屬性指向一個(gè)interface。當(dāng)我們用一個(gè)接口聲明一個(gè)gateway時(shí),spring integration會(huì)自動(dòng)幫我們生成該接口的代理類,這樣當(dāng)我們往gateway發(fā)送消息時(shí),spring integration會(huì)通過代理類把消息轉(zhuǎn)發(fā)到default-request-channel中去