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中去