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