11-Spring Inergration
做不同系统集成
1. 集成流 Intergration FLow
gateway:流的入口
transformer:消息处理、转换
outbound adapter:用于输出
inbound adapter:用于输入
1.1. Gateway
只需要定义接口,类似JPA
定义数据从哪来
1.2. Transformer
@Transformer
注解
1.3. Adapter
把message放到另外一个系统里去,如输出文件到文件系统
2. 集成流配置
- XML配置
- Java配置
- 使用DSL的Java配置
类似依赖注入
2.1. XML
- 定义一个GateWay接口:获取消息数据
- 定义一个集成流xml:定义有哪些Channel、Transformer
2.2. Java
2.3. DSL
IntergrationFlow对象
3. 👍集成流组件
- Channels:消息通道,传递消息
- Filters:过滤器,基于条件判断要不要在流上继续流下去
- Transformers:转换器,消息的内容/类型做转换
- Routers:路由器,决定消息要放到接下来的哪个管道
- Splitters:切分器,把单个消息切分成多个消息
- Aggregators:聚合器,多个消息聚合成一个消息
- Service activators:服务激活器,激活处理消息的方法的调用
- 结束之后可能给下一个通道继续发消息
- Channel adapters:适配器,外部系统的边界
- Gateways:网关,构建消息放到集成流上
3.1. Channels
DirectChannel:默认
PublishSubscribeChannel:1对多,1个发布多个订阅
QueueChannel:FIFO
PriorityChannel:优先级队列,不按照FIFO出队
RendezvousChannel
3.2. Filters
在方法上加@Filter
注解,返回boolean
决定消息要不要往下走
3.3. Transformers
方法加@Transformer
注解
通过类型参数指定source type和to type
返回转换逻辑
3.4. Routers
@Router
注解
3.5. Splitters
切分消息
3.6. Service activators
- MessageHandler
- 处理完流就截止
- GenericHandler
- 有返回值
3.7. Gateways
只需要写一个接口。
Gateways 是应用程序代码和消息系统之间的桥梁。它们抽象了消息发送和接收的细节,使得应用程序代码可以通过方法调用的方式与消息系统交互,而无需直接使用消息API。这样可以使应用程序代码保持简洁,同时也便于测试。
- 单向网关
- 双向网关
- requets channel 输入
- repley channel 获得返回值(Spring会在这个管道上一直等,同步)
3.8. Channel adapters
Adapters 则是用于将消息从一种格式转换为另一种格式,或者从一种传输协议转换为另一种传输协议。Inbound把外部系统的消息格式转为spring integration消息,outbound把spring integration消息转为外部系统消息。
例如,JMS适配器可以将JMS消息转换为Spring Integration通用消息,HTTP适配器可以将HTTP请求和响应转换为Spring Integration消息。
3.9. Endpoint modules
Spring已经提供了很多中Endpoint
AMQP、Filesystems、FTP、Email…
4. 电子邮件集成流
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 进行许可。