|
对于最新稳定版本,请使用 Spring Integration 7.0.0! |
4.3 与 5.0 之间的变化
新组件
5.0版本增加了许多新组件。
Java DSL
独立的 Spring Integration Java DSL 项目现已合并为核心的 Spring Integration 项目。 这IntegrationComponentSpec通道适配器和网关的实现会被分发到各自的模块中。有关Java DSL支持的更多信息,请参见Java DSL。另请参阅4.3到5.0迁移指南,了解迁移到Spring Integration 5.0所需的步骤。
测试支持
我们创建了一个新的 Spring 集成测试框架,以帮助测试 Spring 集成应用程序。现在,使用@SpringIntegrationTest关于测试类和模拟集成工厂里,你可以让你的 JUnit 测试集成流程稍微简单一些。
更多信息请参见测试支持。
总体变更
Spring 集成现已完全基于 Spring Framework5.0以及反应堆项目3.1. 之前的 Project Reactor 版本已不再支持。
核心变更
这@Poller注释现在具有errorChannel属性以便更易配置底层消息发布错误处理. 更多信息请参见注释支持。
所有请求-回复端点(基于摘要回复制作消息处理器)现在可以开始交易,从而使整个下游流程成为事务性。
更多信息请参见交易支持。
这SmartLifecycleRoleController现在提供获取角色中端点状态的方法。
更多信息请参见端点角色。
默认情况下,POJO 方法现在通过使用InvocableHandlerMethod但你可以像之前一样配置它们使用SpEL。
更多信息请参见POJO方法调用。
当将POJO方法作为消息处理对象时,你现在可以用@Default注释以提供不匹配条件的后备机制。
更多信息请参见配置服务激活器。
我们添加了一个简单的PassThrough事务同步工厂始终在当前交易上下文中存储轮询消息。
该消息被用作失败消息的属性消息异常,该程序会包裹交易完成过程中抛出的任何原始异常。
更多信息请参见事务同步。
基于聚合表达式的聚合器发布策略现在 对 表达式进行消息组而不仅仅是集合留言<?>.
更多信息请参见聚合器和 Spring 表达式语言(SpEL)。
你现在可以提供ObjectToMapTransformer带有定制化JsonObjectMapper.
更多信息请参见聚合器和 Spring 表达式语言(SpEL)。
这@GlobalChannelInterceptor注释和<文:通道拦截器>现在支持负面模式(通过!前置)用于组件名称匹配。
更多信息请参见全球通道拦截器配置。
当候选人未能获得锁时,LockRegistryLeaderInitiator现在,新的OnFailedToAcquireMutexEvent通过默认领导者事件发布者.
看领导力事件处理更多信息请见。
门户变更
当网关方法具有无效返回类型和错误通道被提供了,网关现在正确地设置了errorChannel页眉。
之前,头部没有填充。
这会导致同步下游流(在调用线程上运行)向配置通道发送异常,但异步下游流的异常会发送到默认通道errorChannel相反。
这请求回复交换器接口现在有抛出 MessagingException该条款旨在满足拟议的消息交换合同。
你现在可以用 SpEL 表达式来指定请求和回复的超时。 更多信息请参见消息网关。
聚合平台性能变更
默认情况下,聚合器现在使用一个简单序列大小释放策略,这种方式更高效,尤其是在大群情况下。
空组现在安排在移除后空组最小超时.
更多信息请参见聚合器。
分线器变更
分流器组件现在可以处理并拆分 Java流以及反应流发行人对象。
如果输出通道是ReactiveStreamsSubscribeableChannel(可订阅频道)这摘要消息分流器建造 A通量用于后续迭代,而非正则迭代迭 代,与被分割的对象无关。
另外摘要消息分流器提供受保护的获得尺寸如果可能()允许确定可迭代和迭 代如果可能的话。
更多信息请参见Splitter。
JMS变更
此前,Spring Integration JMS XML 配置使用的默认豆名为连接工厂对于JMS连接工厂,则在组件定义中省略该性质。
我们把它改名为jms连接工厂这是 Spring Boot 用来自动配置 JMS 连接出厂豆的豆子名称。
如果你的应用依赖于之前的行为,你可以重新命名你的连接工厂比恩对jms连接工厂或者专门配置组件使用你的 Bean 当前名称。
更多信息请参见JMS支持。
邮件变更
在渲染IMAP邮件内容时,一些不一致的问题已经得到解决。 更多信息请参见“邮件接收通道适配器”部分的说明。
换粮
而不是com.rometools.fetcher.FeedFetcher,在罗马已被弃用,我们引入了新的资源该性质信息来源.
更多信息请参见馈源适配器。
文件变更
我们引入了新的FileHeaders.RELATIVE_PATH消息头用于表示相对路径文件阅读消息源.
尾部适配器现在支持idleEventInterval当文件中在此期间没有数据时,会发出事件。
同花谓词文件写入消息处理器现在有一个额外的参数。
文件:出站通道适配器和网关(文件写入消息处理器)现在支持,REPLACE_IF_MODIFIED FileExistsMode.
他们现在也支持对新写入的文件设置权限。
一个新的FileSystemMarkerFilePresentFileListFilter现已发布。
更多信息请参见处理不完整数据。
这文件分拆器现在提供firstLineAsHeader选项将第一行内容作为其余行消息的头部。
更多信息请参见文件支持。
FTP和SFTP变更
入站信道适配器现在有一个属性,称为最大取取大小,用于限制在本地目录中当前没有文件时,轮询过程中获取的文件数量。
默认情况下,它们还配置为FileSystemPersistentAcceptOnceFileListFilter在局部Filter.
你也可以提供定制目录扫描器通过设置新引入的通道适配器实现扫描器属性。
你现在可以配置正则表达式和模式过滤器,确保始终传递目录。 当你在出站网关中使用递归时,这会很有用。
默认情况下,所有入站通道适配器(基于流式和同步)现在都使用相应的AbstractPersistentAcceptOnceFileListFilter实现以防止远程文件的重复下载。
FTP和SFTP出站网关现在支持以下REPLACE_IF_MODIFIED FileExistsMode在获取远程文件时。
FTP和SFTP流式入站通道适配器现在在消息头中添加远程文件信息。
FTP和SFTP的出站通道适配器(以及放出站网关的命令)现在支持输入流如有效载荷太。
入站通道适配器现在可以通过使用新引入的本地构建文件树递归目录扫描器.
参见扫描器在 FTP 入站通道适配器部分进行注入选项。
另外,你现在可以把这些适配器切换到守望服务相反。
我们添加了NLST命令摘要RemoteFileOutboundGateway执行列表文件名的远程命令。
你现在可以提供Ftp外发网关跟工作Dir表达以更改当前请求消息的 FTP 客户端工作目录。
这远程文件模板现已配备invoke(作回调<F, T>动作)以演唱远程文件作调用在相同的范围内,线程限制,会期.
我们添加了新的过滤器来检测不完整的远程文件。
这Ftp外发网关和Sftp外站网关现在支持通过以下方式在成功传输后移除远程文件的选项获取或MGET命令。
更多信息请参见FTP/FTPS适配器和SFTP适配器。
积分属性
4.3.2 版本新增了spring.integration.readOnly.headersglobal属性,允许你自定义不应复制到新创建文件的头部列表消息由消息构建器.
更多信息请参见全球物业。
流变更
我们在CharacterStreamReadingMessageSource让它被用来“管道”传输 stdin,并在管道关闭时发布应用事件。
更多信息请参见“从溪流中阅读”。
障碍变更
这障碍信息处理者现在支持一个丢弃通道,迟到的触发消息会被发送到该通道。
更多信息请参见线索屏障。
AMQP变更
AMQP的出站端点现在支持在使用RabbitMQ延迟消息交换插件时设置延迟表达式。
入站端点现在支持 Spring AMQPDirectMessageListenerContainer.
可轮询的AMQP支持信道现在会阻挡轮询器配置的轮询线程收到超时(默认:一秒钟)。
头部,例如内容类型,这些被消息转换器添加到消息属性中,现在都用于最终消息。
此前,最终消息中出现哪些头部和消息属性取决于转换器类型。
要覆盖转换器设置的头部,请设置标题映射最后属性到true.
更多信息请参见AMQP支持。
HTTP 变更
默认情况下,DefaultHttpHeaderMapper.userDefinedHeaderPrefix属性现在变成了空字符串,而不是X-.
更多信息请参见 HTTP 头部映射。
默认情况下,uriVariables表达式现在使用SimpleEvaluationContext(自5.0.4起)。
更多信息请参见映射URI变量。
MQTT变更
入站消息现在映射为RECEIVED_TOPIC,RECEIVED_QOS和RECEIVED_RETAINED这些首部以避免在应用中继消息时意外传播到出站消息。
出站通道适配器现在支持主题、qos和保留属性的表达式。 默认设置保持不变。 更多信息请参见MQTT支持。
STOMP变更
我们把STOMP模块改成了ReactorNettyTcpStompClient基于反应堆项目3.1和反应堆-Netty外延。
我们重新命名了Reactor2TcpStompSessionManager自ReactorNettyTcpStompSessionManager,根据ReactorNettyTcpStompClient基础。
更多信息请参见STOMP支持。
网络服务变更
你现在可以供货了WebServiceOutboundGateway具有外部配置的实例WebService模板实例。
DefaultSoapHeaderMapper现在可以映射一个javax.xml.transform.来源用户自定义的首部到SOAP头元素。
简单的WebService入站和出站网关现在可以处理完整的WebServiceMessage作为有效载荷允许作MTOM附件。
更多信息请参见网络服务支持。
Redis变更
这RedisStoreWritingMessageHandler现在还提供额外的字符串基于 的 SpEL 表达式的 setter(便于 Java 配置)。
你现在可以配置zset增量表达式在RedisStoreWritingMessageHandler也。
此外,该地产已从true自false自INCR关于ZADDRedis 命令是可选的。
你现在可以提供RedisInboundChannelAdapter带有执行者用于执行 Redis 监听器调用。
此外,接收到的消息现在包含RedisHeaders.MESSAGE_SOURCE头部表示消息的来源(主题或模式)。
更多信息请参见Redis Support。
TCP 变更
我们新增了ThreadAffinityClientConnectionFactory用于将TCP连接绑定到线程。
你现在可以配置TCP连接工厂来支持推回输入流实例,允许反串化器在“读取前进”后“取消读取”(推回)字节。
我们加了一个ByteArrayElasticRawDeserializer没有最大消息大小根据需要控制和缓冲输入数据。
更多信息请参见TCP和UDP支持。
JDBC变革
这Jdbc消息频道商店现在为 提供一个二传手ChannelMessageStorePreparedStatementSetter,允许你自定义商店中的消息插入方式。
这ExpressionEvaluatingSqlParameterSourceFactory现在为 提供一个二传手sqlParameterTypes允许你自定义参数的SQL类型。
更多信息请参见JDBC支持。
@EndpointId附注
该注释在5.0.4版本中引入,使用Java配置时可控制豆子命名。 更多信息请参见端点豆名称。