参考地址:https://blog.csdn.net/w_x_z_/article/details/53316618
https://blog.csdn.net/qq_27808011/article/details/80108622
spring integration 分为三部分: 通道,通道拦截器,端点;
通道有:PublishSubscribeChannel(广播 允许消息接收者轮询获得消息),QueueChannel(队列 允许消息接收者轮询获得消息),PriorityChannel(优先 按照优先级将数据存储到队列),RendezvousChannel(约定:在接收方receive()之前,阻塞该通道),.DirectChannel(默认 与RendezvousChannel的区别没搞明白),ExecutorChannel(多线程 没看懂)
通道拦截器: channel.addInterceptor(someInterceptor);提供发送与接受的前 后 成功后六个切面
端点: 是三者中处理消息的组件
(1)Channel Adapter(是一种连接外部系统或传输协议的端点,分为inbound与outbound两种 是单向的),
(2)Gateway(类似于Adapter,但是提供了双向的请求/返回集成方式,也分为入站'inbound'和出站'outbound'),
(3) Service Activator: Service Activator 可调用Spring的Bean来处理消息,并将处理后的结果输出到指定的消息通道
(4) Router: 路由(Router) 可根据消息体内容(Payload Type Router)、消息头的值(Header Value Router) 以及定义好的接收表(Recipient List Router) 作为条件,来决定消息传递到的通道
(5) Filter: 过滤器(Filter) 类似于路由(Router),不同的是过滤器不决定消息路由到哪里,而是决定消息是否可以传递给消息通道
(6) Splitter: 拆分器(Splitter)将消息拆分为几个部分单独处理,拆分器处理的返回值是一个集合或者数组
(7) Aggregator: 聚合器(Aggregator)与拆分器相反,它接收一个java.util.List作为参数,将多个消息合并为一个消息
(8) Enricher: 当我们从外部获得消息后,需要增加额外的消息到已有的消息中,这时就需要使用消息增强器(Enricher)。消息增强器主要有消息体
增强器(Payload Enricher)和消息头增强器(Header Enricher)两种
(9) Transformer: 转换器(Transformer)是对获得的消息进行一定的转换处理(如数据格式转换)
(10) Bridge: 使用连接桥(Bridge)可以简单的将两个消息通道连接起来