|
对于最新稳定版本,请使用 Spring Integration 7.0.0! |
5.0 与 5.1 之间的变化
新组件
以下组件在5.1中新增:
Amqp专属频道建议
参见严格消息顺序。
@LongRunningTest
一个JUnit 5@LongRunningTest提供条件注释以检查环境或系统属性RUN_LONG_INTEGRATION_TESTS值为true以确定是否应该运行测试或跳过。
参见JUnit规则和条件。
总体变更
5.1版本中进行了以下修改:
Java DSL
这集成流上下文现在是一个接口,且集成流程注册是 的内部界面集成流上下文.
一个新的logAndReply()当你希望在请求-回复配置流程结束时记录日志,便于引入了作符。
这样可以避免与log()该分支被视为单向端流分量。
生成的豆名NamedComponent集成流程现在基于组件类型,以便可视化工具、日志分析器和度量收集器更易读取。
这GenericHandler.handle()现在 排除 a消息头输入第二个论点。
调度员例外
被接获并重新投掷的例外情况摘要调度器现在更为一致:
-
一个
消息异常任何具有失败消息属性重新抛出,保持不变。 -
所有其他例外都被包裹在
MessageDeliveryException其中失败消息属性集。
以前:
-
一个
消息异常任何具有失败消息财产被重新出售,未作更动 -
一个
消息异常没有失败消息财产被包裹在消息异常其中失败消息属性集。 -
其他
运行异常实例被重新抛弃且未作更改。 -
检查异常被包裹在
MessageDeliveryException其中失败消息属性集。
全球航道拦截者
全局信道拦截器现在适用于动态注册信道,例如通过集成流上下文当使用 Java DSL 或初始化于beanFactory.initializeBean().
此前,当应用上下文刷新后创建豆子时,拦截器并未应用。
通道拦截器
ChannelInterceptor.postReceive()当未收到消息时不再调用;不再需要检查零 留言<?>.
此前,该方法被称为
如果你有一个依赖之前行为的拦截器,那就实现afterReceiveCompleted()而是因为无论消息是否被接收,都会调用该方法。
此外,PolledAmqp频道和PolledJms频道此前未行使afterReceiveCompleted()跟零;现在他们知道了。
集成流程:生成豆子名称
从5.0.5版本开始,为组件生成豆名集成流程前缀是流豆名称,后跟点。
例如,如果一个流豆被命名流豆生成的豆子可以被命名为flowBean.generatedBean.
更多信息请参见“处理消息流”。
聚合器变更
如果小组暂停当被评估为负值时,聚合器会立即终止该组。
只零被视为对当前消息不做任何作的信号。
一个新的popSequence引入了属性,允许(默认情况下)调用MessageBuilder.popSequenceDetails()用于输出消息。
还有一个摘要聚合消息组处理器返回 现在摘要集成信息构建器而不是整体消息为了优化。
更多信息请参见聚合器。
@Publisher注释变更
从5.1版本开始,你必须明确开启@PublisherAOP功能通过使用@EnablePublisher或者通过使用<in:enable-publisher(能出版者>子元素<int:annotation-config>.
还有代理目标类和次序已添加属性以调节代理工厂配置。
看注释驱动配置,具有@Publisher注解更多信息请见。
文件变更
如果你正在使用FileExistsMode.APPEND或FileExistsMode.APPEND_NO_FLUSH你可以提供newFile回调创建新文件时会调用该文件。
回调接收新创建的文件和触发回调的消息。
这可以用来写一个CSV头,举个例子。
这文件阅读消息源现在它不会检查并创建目录,直到它开始()被叫去。
所以,如果有一个入站通道适配器文件阅读消息源具有autoStartup = false在应用程序启动时,文件系统没有出现故障。
更多信息请参见文件支持。
AMQP变更
我们已经身份证和时间戳头部映射的变化DefaultAmqpHeaderMapper.
更多信息请参见AMQP消息头底部附近的说明。
这内容类型现在,Header 被正确映射为通用 Headers Map 中的一个条目。
更多信息请参见 contentType 头部。
从版本5.1.3开始,如果在使用手动确认时发生消息转换异常,并且定义了错误通道,有效载荷为ManualAckListenerExecutionFailedException附加内容渠道和配送标签性能。
这使得错误流能够确认/nack原始消息。
更多信息请参见“入站消息转换”。
JDBC变革
一个令人困惑的每轮询最大行数JDBC入站信道适配器和JDBC出站网关上的属性已被弃用,取而代之的是新引入的最大行数财产。
这JdbcMessageHandler支持现为批量更新当请求消息的有效载荷是可迭代类型。
索引INT_CHANNEL_MESSAGE表(用于Jdbc频道消息存储)已被优化。
如果你在这样的商店里有大型消息组,可能需要修改索引。
更多信息请参见JDBC支持。
FTP和SFTP变更
一个RotatingServerAdvice现在可以通过入站通道适配器轮询多台服务器和目录。
更多信息请参见《入站通道适配器:轮询多台服务器和目录》和《入站通道适配器:轮询多台服务器和目录》。
还有,入站适配器localFilename表达式实例可以包含#remoteDirectory变量,包含被轮询的远程目录。
比较器的通用类型(用于为流媒体适配器排序取用文件列表)已从Comparator<AbstractFileInfo<F>>自比较<F>.
更多信息请参见FTP流式入站通道适配器和SFTP流式入站通道适配器。
此外,入站通道适配器的同步器现在还可以配备比较仪.
这在使用最大取物大小限制检索到的文件数量。
这缓存会话工厂拥有一个新房产测试会话当该函数为真时,工厂会执行测试()对会期在从缓存中检查现有会话时。
TCP 支持
使用SSL时,默认启用主机验证,以防止利用受信任证书的中间人攻击。 更多信息请参见主机验证。
此外,密钥和信任存储类型现在可以在默认TcpSSLContextSupport.
推特支持
由于 Spring Social 项目已进入终止服务状态,Spring Integration 中的 Twitter 支持已转移到 Extensions 项目中。 更多信息请参见春季整合 社交媒体推特。
JMS 支持
这JmsSendingMessageHandler现在提供deliveryModeExpression和时间活表达用于确定JMS消息在运行时发送的相应QoS选项。
这DefaultJmsHeaderMapper现在允许映射入站JMSDelivery模式和JMS生态通过将属性设置为true各自setMapInboundDeliveryMode()和setMapInboundExpiration()选项。
当JmsMessageDrivenEndpoint或JmsInboundGateway被停止,关联的监听器容器现在关闭;这切断了其共享连接和所有消费者的联系。
你可以配置端点恢复到之前的行为。
更多信息请参见JMS支持。
HTTP/WebFlux 支持
这statusCodeExpression(和功能) 现在 提供了RequestEntity<?>作为评估上下文的根对象,因此请求头、方法、URI和正体都可以用于目标状态码的计算。
更多信息请参见 HTTP 支持和 WebFlux 支持。
JMX变更
如果对象名的键值包含了Java标识符(或句号)中允许的字符以外的字符,则该键值现在会被引号.).
例如org.springframework.integration:type=MessageChannel, name=“input:foo.myGroup.errors”.
这带来了一个副作用:之前“允许”的带有此类字符的名字现在会被引用。
例如org.springframework.integration:type=MessageChannel, name=“input#foo.myGroup.errors”.
微米支撑变更
现在,定制由该框架创建的标准千米表变得更加简单。 更多信息请参见“千分尺积分”。
积分图定制
现在可以为集成节点s 通过Function<NamedComponent, Map<String, Object>>additionalPropertiesCallback在集成图服务器.
更多信息请参见积分图。
集成全局属性
当调试逻辑电平被打开用于org.springframework.integration类别。
更多信息请参见全球物业。
这收到超时为@Poller
这@Poller注释现在提供了收到超时方便选择。
看使用@Poller注解更多信息请见。