Spring integration 基本概念
1.spring integration 's architecture
主要提供两个功能:
在系统内提供实现轻量级、事件驱动交互行为的框架
在系统间提供一种基于适配器的平台,以支持灵活的系统间交互
![](https://img.haomeiwen.com/i5891170/a8da58eebd72a239.png)
2.spring integration对于企业集成模式的支持
2.1Message:一个信息的单元,通常有消息头(header)和消息内容(payload)组成
2.2Message channel:消息处理节点之间的连接,负责将Message从生产者传输到消费者。
根据消费者的多少,可分为point to point和publish-subscribe两种
![](https://img.haomeiwen.com/i5891170/607d0c2793809c34.png)
![](https://img.haomeiwen.com/i5891170/f2195ab401051398.png)
根据消息传输方式的不同,分为同步和异步两种
2.3Message Endpoint:消息处理节点,消息从节点进入通道,也是从节点离开通道
几个常见的Message EndPoint:
CHANNEL ADAPTER,用于连接该适配器的特点是单向消息流的,要么是消息通过该适配器进入通道,要么是消息通过该适配器离开通道
![](https://img.haomeiwen.com/i5891170/b79a1b981aae1950.png)
MESSAGING GATEWAY,处理的消息流和Channel Adapter不同,不是单向的,即有进入该节点的消息,也会从该节点发出消息。
![](https://img.haomeiwen.com/i5891170/af9a87c4a3449f42.png)
![](https://img.haomeiwen.com/i5891170/017d10305b0c84bd.png)
SERVICE ACTIVATOR,该节点调用服务来处理输入的消息,并将服务返回的数据发送到输出通道。在spring integration中,调用的方法被限定为本地方法调用。
![](https://img.haomeiwen.com/i5891170/ed27794f62a0ac01.png)
ROUTER,路由器,将输入的消息路由到某个输出通道中
![](https://img.haomeiwen.com/i5891170/4ce407d4637b1d34.png)
SPLITTER,将输入的消息拆分成子消息
![](https://img.haomeiwen.com/i5891170/2fdf0b84ce29806c.png)
AGGREGATOR,将输入的多个消息合并为一个消息
![](https://img.haomeiwen.com/i5891170/0565e1605859f390.png)
3.观看书中例子hello-world思考
测试gateway时,下面代码向通道names内放入消息world?
![](https://img.haomeiwen.com/i5891170/a19edabc3830557b.png)
![](https://img.haomeiwen.com/i5891170/0cdb740224551ad1.png)
然后service-activator从names通道中获得消息world,调用方法sayHello返回值到给gateway?
解释:gateway有一个service-interface的属性,这个属性指向一个interface。当我们用一个接口声明一个gateway时,spring integration会自动帮我们生成该接口的代理类,这样当我们往gateway发送消息时,spring integration会通过代理类把消息转发到default-request-channel中去