11-Spring Inergration

Charlie

做不同系统集成

1. 集成流 Intergration FLow

image.png

gateway:流的入口
transformer:消息处理、转换

outbound adapter:用于输出
inbound adapter:用于输入

1.1. Gateway

只需要定义接口,类似JPA

定义数据从哪来

1.2. Transformer

@Transformer注解

1.3. Adapter

把message放到另外一个系统里去,如输出文件到文件系统

2. 集成流配置

  1. XML配置
  2. Java配置
  3. 使用DSL的Java配置

类似依赖注入

2.1. XML

  1. 定义一个GateWay接口:获取消息数据
  2. 定义一个集成流xml:定义有哪些Channel、Transformer

2.2. Java

image.png

2.3. DSL

IntergrationFlow对象

image.png

3. 👍集成流组件

  • Channels:消息通道,传递消息
  • Filters:过滤器,基于条件判断要不要在流上继续流下去
  • Transformers:转换器,消息的内容/类型做转换
  • Routers:路由器,决定消息要放到接下来的哪个管道
  • Splitters:切分器,把单个消息切分成多个消息
  • Aggregators:聚合器,多个消息聚合成一个消息
  • Service activators:服务激活器,激活处理消息的方法的调用
    • 结束之后可能给下一个通道继续发消息
  • Channel adapters:适配器,外部系统的边界
  • Gateways:网关,构建消息放到集成流上

3.1. Channels

DirectChannel:默认
PublishSubscribeChannel:1对多,1个发布多个订阅
QueueChannel:FIFO
PriorityChannel:优先级队列,不按照FIFO出队
RendezvousChannel

image.png

3.2. Filters

在方法上加@Filter注解,返回boolean决定消息要不要往下走

image.png

3.3. Transformers

方法加@Transformer注解
通过类型参数指定source type和to type
返回转换逻辑

image.png

3.4. Routers

@Router注解

image.png

3.5. Splitters

切分消息

image.png

3.6. Service activators

  • MessageHandler
    • 处理完流就截止
  • GenericHandler
    • 有返回值

image.png

3.7. Gateways

只需要写一个接口。
Gateways 是应用程序代码和消息系统之间的桥梁。它们抽象了消息发送和接收的细节,使得应用程序代码可以通过方法调用的方式与消息系统交互,而无需直接使用消息API。这样可以使应用程序代码保持简洁,同时也便于测试。

  • 单向网关
  • 双向网关
    • requets channel 输入
    • repley channel 获得返回值(Spring会在这个管道上一直等,同步)

image.png

3.8. Channel adapters

Adapters 则是用于将消息从一种格式转换为另一种格式,或者从一种传输协议转换为另一种传输协议。Inbound把外部系统的消息格式转为spring integration消息,outbound把spring integration消息转为外部系统消息。
例如,JMS适配器可以将JMS消息转换为Spring Integration通用消息,HTTP适配器可以将HTTP请求和响应转换为Spring Integration消息。

image.png

3.9. Endpoint modules

Spring已经提供了很多中Endpoint
AMQP、Filesystems、FTP、Email…

4. 电子邮件集成流

image.png

IMAP协议需要授权码

  • 标题: 11-Spring Inergration
  • 作者: Charlie
  • 创建于 : 2023-11-23 18:11:00
  • 更新于 : 2024-07-05 12:55:04
  • 链接: https://chillcharlie357.github.io/posts/b564c0a/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论