对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

新组件

以下组件是 5.1 中的新增功能:Spring中文文档

AmqpDedicatedChannelAdvice

改进的功能支持

这些接口现在改进了框架组件中的集成支持。 此外,Kotlin lambda 现在可用于处理程序和源方法。java.util.functionSpring中文文档

@LongRunningTest

提供了 JUnit 5 条件注释,用于检查值为 的条目的环境或系统属性,以确定是否应运行或跳过测试。@LongRunningTestRUN_LONG_INTEGRATION_TESTStrueSpring中文文档

一般更改

在 V5.1 中进行了以下更改:Spring中文文档

Java DSL的

现在是一个接口,并且是 的内部接口。IntegrationFlowContextIntegrationFlowRegistrationIntegrationFlowContextSpring中文文档

为了方便起见,引入了一个新的运算符,当您希望在请求-答复配置的流程结束时进行记录时。 这样可以避免与哪个分量混淆,哪个分量被视为单向端流分量。logAndReply()log()Spring中文文档

现在,集成流中任何 Bean 名称的生成都基于组件类型,以便从可视化工具、日志分析器和指标收集器中获得更好的可读性。NamedComponentSpring中文文档

现在,第二个参数的类型除外。GenericHandler.handle()MessageHeadersSpring中文文档

Dispatcher 异常

捕获和重新抛出的异常现在更加一致:AbstractDispatcherSpring中文文档

  • 具有属性的任何类型的 A 都将原封不动地重新抛出。MessagingExceptionfailedMessageSpring中文文档

  • 所有其他异常都包含在属性集的 a 中。MessageDeliveryExceptionfailedMessageSpring中文文档

  • 具有属性的任何类型的 A 都会原封不动地重新抛出MessagingExceptionfailedMessageSpring中文文档

  • 没有属性的 A 被包装在具有属性集的 A 中。MessagingExceptionfailedMessageMessagingExceptionfailedMessageSpring中文文档

  • 其他实例原封不动地重新抛出。RuntimeExceptionSpring中文文档

  • 选中的异常包装在具有属性集的 a 中。MessageDeliveryExceptionfailedMessageSpring中文文档

全球信道拦截器

全局通道侦听器现在适用于动态注册的通道,例如通过使用 Java DSL 时或使用 . 以前,在刷新应用程序上下文后创建 Bean 时,不会应用拦截器。IntegrationFlowContextbeanFactory.initializeBean()Spring中文文档

信道拦截器

ChannelInterceptor.postReceive()未收到消息时不再调用;不再需要检查 . 以前,调用了该方法。 如果您有一个依赖于先前行为的拦截器,请改为实现,因为无论是否收到消息,都会调用该方法。 此外,和 以前没有调用 ;他们现在做到了。nullMessage<?>afterReceiveCompleted()PolledAmqpChannelPolledJmsChannelafterReceiveCompleted()nullSpring中文文档

ObjectToJsonTransformer

为 .ResultType.BYTESObjectToJsonTransformerSpring中文文档

有关更多信息,请参阅 JSON TransformersSpring中文文档

集成流:生成的 Bean 名称

从 V5.0.5 开始,为 an 中的组件生成的 Bean 名称包括流 Bean 名称,后跟一个点作为前缀。 例如,如果一个流 Bean 被命名为 ,则生成的 Bean 可能被命名为 。IntegrationFlowflowBeanflowBean.generatedBeanSpring中文文档

有关更多信息,请参阅使用消息流Spring中文文档

聚合器更改

如果计算结果为负值,则聚合器现在会立即使组过期。 Only 被视为对当前消息不执行任何操作的信号。groupTimeoutnullSpring中文文档

引入了一个新属性,以允许(默认情况下)为输出消息调用 a。 此外,an 现在返回 an 而不是整体进行优化。popSequenceMessageBuilder.popSequenceDetails()AbstractAggregatingMessageGroupProcessorAbstractIntegrationMessageBuilderMessageSpring中文文档

有关详细信息,请参阅聚合器Spring中文文档

@Publisher注释更改

从 V5.1 开始,必须使用或使用 子元素 on 显式打开 AOP 功能。 此外,还添加了用于调整配置的 和 属性。@Publisher@EnablePublisher<int:enable-publisher><int:annotation-config>proxy-target-classorderProxyFactorySpring中文文档

文件更改

如果您正在使用或可以提供将在创建新文件时调用的。 该回调接收新创建的文件和触发回调的消息。 例如,这可用于编写 CSV 标头。FileExistsMode.APPENDFileExistsMode.APPEND_NO_FLUSHnewFileCallbackSpring中文文档

现在不会检查和创建目录,直到它被调用。 因此,如果 的入站通道适配器 具有 ,则在应用程序启动期间不会出现文件系统故障。FileReadingMessageSourcestart()FileReadingMessageSourceautoStartup = falseSpring中文文档

有关详细信息,请参阅文件支持Spring中文文档

AMQP 更改

我们在 . 有关详细信息,请参阅 AMQP 邮件头底部附近的注释。IDTimestampDefaultAmqpHeaderMapperSpring中文文档

现在,标头已正确映射为常规标头映射中的条目。 有关详细信息,请参阅 contentType 标头contentTypeSpring中文文档

从版本 5.1.3 开始,如果在使用手动确认时发生消息转换异常,并且定义了错误通道,则有效负载为具有附加 和 属性的负载。 这使错误流能够确认/确认原始消息。 有关详细信息,请参阅入站邮件转换ManualAckListenerExecutionFailedExceptionchanneldeliveryTagSpring中文文档

JDBC 更改

JDBC 入站通道适配器和 JDBC 出站网关上的一个令人困惑的属性已被弃用,取而代之的是新引入的属性。max-rows-per-pollmax-rowsSpring中文文档

现在,当请求消息的有效负载是某个类型的实例时,它支持一种功能。JdbcMessageHandlerbatchUpdateIterableSpring中文文档

表 (for ) 的索引已优化。 如果此类存储中有大型消息组,则可能希望更改索引。INT_CHANNEL_MESSAGEJdbcChannelMessageStoreSpring中文文档

有关更多信息,请参阅 JDBC 支持Spring中文文档

FTP 和 SFTP 更改

A 现在可用于轮询具有入站通道适配器的多个服务器和目录。 有关详细信息,请参阅入站通道适配器:轮询多个服务器和目录入站通道适配器:轮询多个服务器和目录RotatingServerAdviceSpring中文文档

此外,入站适配器实例可以包含变量,该变量包含正在轮询的远程目录。 比较器的通用类型(用于对流适配器的提取文件列表进行排序)已从 更改为 。 有关详细信息,请参阅 FTP 流入站通道适配器SFTP 流入站通道适配器localFilenameExpression#remoteDirectoryComparator<AbstractFileInfo<F>>Comparator<F>Spring中文文档

此外,入站通道适配器的同步器现在可以提供 . 这在用于限制检索到的文件时很有用。ComparatormaxFetchSizeSpring中文文档

具有一个新属性,当为 true 时,该属性会导致工厂在从缓存中签出现有会话时对 执行操作。CachingSessionFactorytestSessiontest()SessionSpring中文文档

有关详细信息,请参阅 SFTP 会话缓存FTP 会话缓存Spring中文文档

出站网关 MPUT 命令现在支持包含文件或字符串集合的消息有效负载。 有关详细信息,请参阅 SFTP 出站网关FTP 出站网关Spring中文文档

TCP 支持

使用 SSL 时,默认情况下,主机验证现在处于启用状态,以防止使用受信任证书的中间人攻击。 有关详细信息,请参阅主机验证Spring中文文档

此外,现在可以在 上配置密钥和信任存储类型。DefaultTcpSSLContextSupportSpring中文文档

Twitter 支持

由于 Spring Social 项目已进入生命周期终止状态,因此 Spring Integration 中的 Twitter 支持已移至 Extensions 项目。 有关更多信息,请参阅 Spring Integration Social TwitterSpring中文文档

JMS 支持

现在提供了 和 选项,用于确定要在运行时发送的 JMS 消息的相应 QoS 选项。 现在允许通过设置将入站和属性映射到相应的和选项。 当 or 停止时,关联的侦听器容器现在将关闭;这将关闭其共享连接和任何使用者。 您可以将端点配置为恢复到以前的行为。JmsSendingMessageHandlerdeliveryModeExpressiontimeToLiveExpressionDefaultJmsHeaderMapperJMSDeliveryModeJMSExpirationtruesetMapInboundDeliveryMode()setMapInboundExpiration()JmsMessageDrivenEndpointJmsInboundGatewaySpring中文文档

有关更多信息,请参阅 JMS 支持Spring中文文档

HTTP/WebFlux 支持

(和 )现在随 作为评估上下文的根对象提供,因此请求标头、方法、URI 和正文可用于目标状态代码计算。statusCodeExpressionFunctionRequestEntity<?>Spring中文文档

有关详细信息,请参阅 HTTP 支持WebFlux 支持Spring中文文档

JMX 更改

现在,如果对象名称键值包含 Java 标识符(或句点)中允许的字符以外的任何字符,则会引用它们。 例如。 这会产生一个副作用,即以前“允许”的名称,带有这样的字符,现在将被引用。 例如。.org.springframework.integration:type=MessageChannel,name="input:foo.myGroup.errors"org.springframework.integration:type=MessageChannel,name="input#foo.myGroup.errors"Spring中文文档

千分尺支持变化

现在,自定义框架创建的标准千分尺更简单。 有关详细信息,请参阅千分尺集成Spring中文文档

集成图定制

现在可以在 上通过 向 s 添加其他属性。 有关更多信息,请参见集成图IntegrationNodeFunction<NamedComponent, Map<String, Object>> additionalPropertiesCallbackIntegrationGraphServerSpring中文文档

集成全球属性

现在,当为类别打开逻辑级别时,可以在日志中打印集成全局属性(包括默认值)。 有关详细信息,请参阅全局属性DEBUGorg.springframework.integrationSpring中文文档

的 forreceiveTimeout@Poller

为方便起见,注释现在提供了一个选项。 有关详细信息,请参阅使用@Poller注释@PollerreceiveTimeoutSpring中文文档