新组件
版本 4.2 添加了许多新组件。
主要管理/JMX 返工
我们添加了一个新的策略界面。
此更改与 JMX 和管理基础结构中的其他更改一起,提供了对管理配置和运行时性能的更多控制。MetricsFactory
但是,这对(某些)用户环境有一些重要影响。
MongoDB 元数据存储
现在可用。
有关更多信息,请参阅 MongoDB 元数据存储。MongoDbMetadataStore
SecuredChannel 注释
我们引入了注解,替换了已弃用的 .
有关更多信息,请参阅 Spring Integration 中的安全性。@SecuredChannel
ChannelSecurityInterceptorFactoryBean
SecurityContext
增殖
我们引入了从一个消息流的线程到另一个消息流的传播。
有关更多信息,请参阅 Spring Integration 中的安全性。SecurityContextPropagationChannelInterceptor
SecurityContext
文件拆分器
在 4.1.2 中,我们添加了 ,它将文本文件拆分为几行。
它现在在命名空间中具有完全支持。
有关详细信息,请参阅文件拆分器。FileSplitter
int-file:
Zookeeper 支持
我们在框架中添加了 Zookeeper 支持,以便在群集或多主机环境中运行时提供帮助。 此更改会影响以下功能:
-
ZookeeperMetadataStore
-
ZookeeperLockRegistry
-
动物园管理员领导
有关详细信息,请参阅 Zookeeper 支持。
螺纹屏障
可以使用新的线程组件,允许线程挂起,直到发生某些异步事件。
有关详细信息,请参阅线程屏障。<int:barrier/>
STOMP 支持
我们将 STOMP 支持作为入站和出站通道适配器对添加到框架中。 有关详细信息,请参阅 STOMP 支持。
编 解码 器
引入了一种新的抽象,用于对对象进行编码和解码。
我们添加了一个使用 Kryo 的实现。
我们还添加了基于编解码器的转换器和消息转换器。
有关详细信息,请参阅编解码器。Codec
byte[]
Message PreparedStatement Setter
( 和 ) 可以使用新的函数接口回调,作为使用上下文填充参数的替代方法。
有关详细信息,请参阅出站通道适配器。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 Integration TCP 功能的一般更改。
TCP 序列化程序
TCP 不再是 .
现在,这是由类完成的。
如果直接在代码中使用序列化程序,则可能需要 .Serializers
flush()
OutputStream
TcpNxxConnection
flush()
OutputStream
服务器套接字异常
TcpConnectionServerExceptionEvent
现在,每当 TCP 服务器套接字(也添加到 4.1.3 和 4.0.7)上发生意外异常时,都会发布实例。
有关详细信息,请参阅 TCP 连接事件。
TCP 服务器端口
如果将 TCP 服务器套接字工厂配置为侦听随机端口,则现在可以使用 获取操作系统选择的实际端口。 也可用。getPort()
getServerSocketAddress()
有关详细信息,请参阅“TCP 连接工厂”。
TCP 网关远程超时
现在支持作为现有属性的替代项。
这允许根据每条消息设置超时。TcpOutboundGateway
remote-timeout-expression
remote-timeout
此外,不再默认为与 相同的值,这具有完全不同的含义。remote-timeout
reply-timeout
请参见。TCP 出站网关属性了解更多信息。
TCP SSLSession 可用于标头映射
TcpConnection
实现现在支持从会话中提取信息以添加到消息标题中。
有关详细信息,请参阅 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 Integration TCP 功能的一般更改。
回复 侦听器延迟初始化
现在,您可以将 JMS 出站网关中的应答侦听器配置为按需初始化并在空闲期后停止,而不是由网关的生命周期控制。 有关详细信息,请参阅出站网关。
默认确认模式
当使用隐式定义时,默认值现在为 。
我们建议在使用此容器时使用,以避免消息丢失。
此默认值现在适用于消息驱动的入站适配器和入站网关。
它已经是 JMS 支持的通道的默认值。DefaultMessageListenerContainer
acknowledge
transacted
transacted
有关详细信息,请参阅消息驱动的通道适配器和入站网关。
共享订阅
我们向消息驱动的端点添加了对共享订阅 (JMS 2.0) 的命名空间支持,并且 .
以前,必须将侦听器容器连接为声明才能使用共享连接。<int-jms:publish-subscribe-channel>
<bean/>
有关更多信息,请参阅 JMS 支持。
AMQP 更改
本节介绍对 Spring Integration AMQP 功能的一般更改。
发布商确认
现在支持 、 和 属性(其用途类似于 )。<int-amqp:outbound-gateway>
confirm-correlation-expression
confirm-ack-channel
confirm-nack-channel
<int-amqp:outbound-channel-adapter>
相关数据
对于出站通道适配器和入站网关,如果关联数据为 ,则它将成为 ack 或 nack 通道上消息的基础,并添加了额外的标头。
以前,任何关联数据(包括 )都作为 ack 或 nack 消息的有效负载返回。Message<?>
Message<?>
入站网关属性
现在公开该属性,以允许对应答的外部 Bean 进行更多控制。
您还可以提供自己的实现。
此外,如果请求消息没有属性,则可以使用。<int-amqp:inbound-gateway>
amqp-template
RabbitTemplate
AmqpTemplate
default-reply-to
replyTo
有关详细信息,请参阅 AMQP 支持。
XPath 拆分器改进
() 现在允许配置内部,并支持 XPath 评估结果的模式(默认为 )。XPathMessageSplitter
<int-xml:xpath-splitter>
output-properties
javax.xml.transform.Transformer
Iterator
true
org.w3c.dom.NodeList
有关更多信息,请参见拆分 XML 消息。
HTTP 更改
本节介绍对 Spring Integration HTTP 功能的一般更改。
CORS(核心斯酒店)
HTTP 入站端点 ( 和 ) 现在允许
配置跨域资源共享 (CORS)。<int-http:inbound-channel-adapter>
<int-http:inbound-gateway>
有关详细信息,请参阅跨域资源共享 (CORS) 支持。
入站网关超时
您可以配置 HTTP 入站门方式,以返回请求超时时指定的状态代码。
默认值是 now 而不是 。500 Internal Server Error
200 OK
有关详细信息,请参阅响应状态代码。
表单数据
我们添加了代理请求的文档。
有关详细信息,请参阅 HTTP 支持。multipart/form-data
网关更改
本节介绍对 Spring Integration Gateway 功能的一般更改。
[[网关方法-can-return-completablefuture<?>]]
==== 网关方法可以返回CompletableFuture<?>
使用 Java 8 时,网关方法现在可以返回 。
有关更多信息,请参见 CompletableFuture
。CompletableFuture<?>
MessagingGateway 注解
请求和应答超时属性现在已不再允许使用属性占位符或 SpEL 进行配置。
请参阅@MessagingGateway
注释。String
Long
聚合器更改
本节介绍对 Spring Integration 聚合器功能的一般更改。
聚合器性能
此版本包括聚合组件(聚合器、重排序器等)的一些性能改进,通过在消息发布时更有效地从组中删除消息。
新方法 () 已添加到消息存储库中。
设置属性(默认值:)以调整每次操作中删除的消息数。
目前,JDBC、Redis 和 MongoDB 消息存储库都支持此属性。removeMessagesFromGroup
removeBatchSize
100
输出消息组处理器
当使用 或 内 Bean 作为聚合器时,您现在可以直接绑定 .
此外,我们还添加了一个返回组中消息集合的函数。
当输出处理器生成 的集合时,聚合器会单独释放这些消息。
配置 使聚合器成为消息屏障,消息被保留,直到它们全部到达,然后单独发布。
有关详细信息,请参阅聚合器。ref
MessageGroupProcessor
SimpleMessageGroupProcessor
Message<?>
SimpleMessageGroupProcessor
FTP 和 SFTP 更改
本节介绍对 Spring Integration FTP 和 SFTP 功能的一般更改。
入站通道适配器
现在,您可以在入站通道适配器上指定 a 来确定运行时的目录。
有关详细信息,请参阅 FTP/FTPS 适配器和 SFTP 适配器。remote-directory-expression
默认 Sftp 会话工厂
以前,无条件允许连接到未知主机。
这现在是可配置的(默认值:)。DefaultSftpSessionFactory
false
出厂现在需要一个配置的 文件,除非该属性是 (default: )。knownHosts
allowUnknownKeys
true
false
消息会话回调
我们介绍了在 中对上下文执行任何自定义操作。MessageSessionCallback<F, T>
Session
requestMessage
<int-(s)ftp:outbound-gateway/>
有关详细信息,请参阅使用 MessageSessionCallback
和 MessageSessionCallback。
Websocket 更改
我们添加了对 的支持,以允许对内部 进行链式自定义。
有关详细信息,请参阅 WebSockets 命名空间支持。WebSocketHandlerDecoratorFactory
ServerWebSocketContainer
WebSocketHandler
应用程序事件适配器更改
适配器现在可以作为直接允许省略自定义扩展的适配器运行。
为此,我们引入了布尔属性,该属性已在 .
有关详细信息,请参阅 Spring ApplicationEvent
支持。ApplicationEvent
payload
event
ApplicationEvent
publish-payload
<int-event:outbound-channel-adapter>