对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
4.1 和 4.2 之间的更改
新组件
版本 4.2 添加了许多新组件。
主要管理/JMX 返工
我们添加了一个新的策略界面。
此更改以及 JMX 和管理基础结构中的其他更改,提供了对管理配置和运行时性能的更多控制。MetricsFactory
但是,这对 (某些) 用户环境有一些重要影响。
MongoDB 元数据存储
现已推出。
有关更多信息,请参阅 MongoDB 元数据存储。MongoDbMetadataStore
SecuredChannel 注解
我们引入了注释,替换了已弃用的 .
有关更多信息,请参阅 Spring Integration 中的安全性。@SecuredChannel
ChannelSecurityInterceptorFactoryBean
SecurityContext
增殖
我们引入了 for the propagation from one message flow's thread to another message flow.
有关更多信息,请参阅 Spring Integration 中的安全性。SecurityContextPropagationChannelInterceptor
SecurityContext
FileSplitter 文件拆分器
在 4.1.2 中,我们添加了 ,它将文本文件拆分为几行。
现在,它在命名空间中得到了完全支持。
有关更多信息,请参阅 File Splitter 。FileSplitter
int-file:
Zookeeper 支持
我们向框架添加了 Zookeeper 支持,以便在集群或多主机环境中运行时提供帮助。 此更改会影响以下功能:
-
ZookeeperMetadataStore
-
ZookeeperLockRegistry
-
Zookeeper 领导层
有关更多信息,请参阅 Zookeeper 支持。
线程屏障
新的线程组件可用,允许线程暂停,直到发生某些异步事件。
有关更多信息,请参见 Thread Barrier。<int:barrier/>
STOMP 支持
我们向框架添加了 STOMP 支持作为入站和出站通道适配器对。 有关更多信息,请参阅 STOMP 支持。
Codec
引入了一种新的抽象,用于将对象编码和解码到 和 从 。
我们添加了一个使用 Kryo 的实现。
我们还添加了基于编解码器的转换器和消息转换器。
有关更多信息,请参阅 编解码器 。Codec
byte[]
消息 PreparedStatement Setter
( 和 ) 提供了新的函数接口回调,作为使用上下文填充 上的参数的替代方法。
有关更多信息,请参阅 Outbound Channel Adapter 。MessagePreparedStatementSetter
JdbcMessageHandler
<int-jdbc:outbound-gateway>
<int-jdbc:outbound-channel-adapter>
SqlParameterSourceFactory
PreparedStatement
requestMessage
一般更改
本节介绍从版本 4.1 到版本 4.2 的一般更改。
文件更改
有关这些更改的更多信息,请参阅文件支持。
类套餐更改
我们将类从 移动到 。ScatterGatherHandler
org.springframework.integration.handler
org.springframework.integration.scattergather
TCP 更改
本节描述了对 Spring 集成 TCP 功能的一般更改。
TCP 序列化程序
TCP 不再是 .
现在,这由 classes 完成。
如果直接在代码中使用序列化程序,则可能需要将 .Serializers
flush()
OutputStream
TcpNxxConnection
flush()
OutputStream
服务器套接字异常
TcpConnectionServerExceptionEvent
现在,每当 TCP 服务器套接字(也添加到 4.1.3 和 4.0.7)上发生意外异常时,都会发布实例。
有关更多信息,请参阅 TCP 连接事件。
TCP 服务器端口
如果将 TCP 服务器套接字工厂配置为侦听随机端口,则现在可以使用 获取 OS 选择的实际端口。 也可用。getPort()
getServerSocketAddress()
有关更多信息,请参阅“TCP 连接工厂”。
TCP 网关远程超时
现在支持作为 existing 属性的替代项。
这允许根据每条消息设置超时。TcpOutboundGateway
remote-timeout-expression
remote-timeout
此外,the 不再默认为 与 相同的值,这具有完全不同的含义。remote-timeout
reply-timeout
请参阅 。TCP 出站网关属性 (TCP Outbound Gateway Attributes) 了解更多信息。
TCP SSLSession 可用于标头映射
TcpConnection
implementations 现在支持让您从 session 中提取信息以添加到 message headers。
有关更多信息,请参阅 IP 消息报头。getSslSession()
TCP 事件
现在,每当发生关联异常时(例如,将消息发送到不存在的套接字),都会发布新事件。
已弃用。
请改用泛型事件适配器。TcpConnectionEventListeningMessageProducer
有关更多信息,请参阅 TCP 连接事件。
@InboundChannelAdapter
变化
以前,入站通道适配器将属性默认为 (infinity)。
这与 的 XML 配置不一致,默认为 .
注解现在将此属性默认为 .@Poller
maxMessagesPerPoll
-1
<inbound-channel-adapter/>
1
1
API 变更
o.s.integration.util.FunctionIterator
现在需要 a 而不是 .
这样做是为了消除对 Reactor 的不必要的硬依赖。
此迭代器的任何使用都需要更改导入。o.s.integration.util.Function
reactor.function.Function
网关等功能仍支持 Reactor。
对于不需要依赖项的用户,已删除依赖项。Promise
JMS 更改
本节描述了对 Spring 集成 TCP 功能的一般更改。
Reply 侦听器延迟初始化
您现在可以将 JMS 出站网关中的回复侦听器配置为按需初始化并在空闲期后停止,而不是由网关的生命周期控制。 有关更多信息,请参阅出站网关。
默认确认模式
当使用隐式定义的 时,默认值现在是 。
我们建议在使用此容器时使用,以避免消息丢失。
此默认值现在适用于消息驱动的入站适配器和入站网关。
它已经是 JMS 支持的通道的默认通道。DefaultMessageListenerContainer
acknowledge
transacted
transacted
有关更多信息,请参阅消息驱动的通道适配器和入站网关。
共享订阅
我们向消息驱动端点添加了对共享订阅 (JMS 2.0) 的命名空间支持,并将 .
以前,您必须将侦听器容器连接为声明才能使用共享连接。<int-jms:publish-subscribe-channel>
<bean/>
有关更多信息,请参阅 JMS 支持。
AMQP 更改
本节描述了对 Spring 集成 AMQP 功能的一般更改。
发布者确认
现在支持 、 和 属性(其用途类似于 )。<int-amqp:outbound-gateway>
confirm-correlation-expression
confirm-ack-channel
confirm-nack-channel
<int-amqp:outbound-channel-adapter>
关联数据
对于出站通道适配器和入站网关,如果关联数据是 a ,则它将成为 ack 或 nack 通道上消息的基础,并添加了额外的 Headers。
以前,任何关联数据(包括 )都作为 ack 或 nack 消息的有效负载返回。Message<?>
Message<?>
入站网关属性
现在公开了该属性,以允许对 reply 的外部 bean 进行更多控制。
您还可以提供自己的实施。
此外,如果请求消息没有属性,则可以使用 if。<int-amqp:inbound-gateway>
amqp-template
RabbitTemplate
AmqpTemplate
default-reply-to
replyTo
有关更多信息,请参阅 AMQP 支持。
XPath Splitter 改进
() 现在允许对 internal 进行配置,并支持 XPath 评估结果的模式(默认为 )。XPathMessageSplitter
<int-xml:xpath-splitter>
output-properties
javax.xml.transform.Transformer
Iterator
true
org.w3c.dom.NodeList
有关更多信息,请参阅拆分 XML 消息。
HTTP 更改
本节描述了对 Spring 集成 HTTP 功能的一般更改。
CORS
HTTP 入站终端节点( 和 )现在允许
跨域资源共享 (CORS) 的配置。<int-http:inbound-channel-adapter>
<int-http:inbound-gateway>
有关更多信息,请参阅跨源资源共享 (CORS) 支持。
入站网关超时
您可以配置 HTTP 入站入口方式,以便在请求超时时返回您指定的状态代码。
默认值现在为 ,而不是 。500 Internal Server Error
200 OK
有关更多信息,请参阅响应状态代码。
表单数据
我们添加了代理请求的文档。
有关更多信息,请参阅 HTTP 支持。multipart/form-data
网关更改
本节描述了对 Spring Integration Gateway 功能的一般更改。
[[gateway-methods-can-return-completablefuture<?>]]
==== 网关方法可以返回CompletableFuture<?>
使用 Java 8 时,网关方法现在可以返回 .
有关更多信息,请参见 CompletableFuture
。CompletableFuture<?>
MessagingGateway 注释
请求和回复超时属性现在是允许使用属性占位符或 SPEL 进行配置。
请参见@MessagingGateway
注释。String
Long
Aggregator 更改
本节描述了对 Spring 集成聚合器功能的一般更改。
聚合商性能
此版本包括聚合组件(聚合器、resequencer 等)的一些性能改进,方法是在发布消息时更有效地从组中删除消息。
新方法 () 已添加到邮件存储中。
设置属性 (default: ) 以调整每个操作中删除的消息数。
目前,JDBC、Redis 和 MongoDB 消息存储支持此属性。removeMessagesFromGroup
removeBatchSize
100
输出消息组处理器
当对聚合器使用 或 inner bean 时,您现在可以直接绑定 .
此外,我们还添加了一个 ,用于返回组中的消息集合。
当输出处理器生成 的集合时,聚合器会单独释放这些消息。
配置 使聚合器成为消息屏障,消息被保留,直到它们全部到达,然后单独发布。
有关更多信息,请参阅 Aggregator。ref
MessageGroupProcessor
SimpleMessageGroupProcessor
Message<?>
SimpleMessageGroupProcessor
FTP 和 SFTP 更改
本节描述了对 Spring 集成 FTP 和 SFTP 功能的一般更改。
入站通道适配器
现在,您可以在入站通道适配器上指定 a,以便在运行时确定目录。
有关更多信息,请参阅 FTP/FTPS 适配器和 SFTP 适配器。remote-directory-expression
委派 Session Factory
我们添加了一个委托会话工厂,允许根据某些线程上下文值选择特定的会话工厂。
有关更多信息,请参阅委派 Session Factory 和委派 Session Factory。
默认 sftp 会话工厂
以前,无条件允许连接到未知主机。
这现在可以配置 (default: )。DefaultSftpSessionFactory
false
工厂现在需要配置的 , 文件,除非该属性为 (default: )。knownHosts
allowUnknownKeys
true
false
Message Session 回调
我们引入了 ,以使用 .MessageSessionCallback<F, T>
Session
requestMessage
<int-(s)ftp:outbound-gateway/>
有关更多信息,请参阅使用 MessageSessionCallback
和 MessageSessionCallback。
Websocket 更改
我们添加了对 的支持,以允许对内部 .
有关更多信息,请参阅 WebSockets 命名空间支持。WebSocketHandlerDecoratorFactory
ServerWebSocketContainer
WebSocketHandler
应用程序事件适配器更改
适配器现在可以作为直接允许省略自定义扩展进行操作。
为此,我们引入了 boolean 属性。
有关更多信息,请参见Spring ApplicationEvent
Support。ApplicationEvent
payload
event
ApplicationEvent
publish-payload
<int-event:outbound-channel-adapter>