请参阅迁移指南,了解可能影响应用程序的重要更改。 您可以在 wiki 上找到所有版本的迁移指南,这些版本可以追溯到 2.1Spring中文文档

新组件

版本 4.0 添加了许多新组件。Spring中文文档

MQTT 通道适配器

MQTT 通道适配器(以前在 Spring Integration Extensions 存储库中可用)现在作为普通 Spring Integration 发行版的一部分提供。 请参阅 MQTT 支持Spring中文文档

@EnableIntegration

我们添加了注解,以允许在使用类时声明标准 Spring Integration bean。 有关详细信息,请参阅注释支持@EnableIntegration@ConfigurationSpring中文文档

@IntegrationComponentScan

我们添加了注释,以允许对 Spring Integration 特定组件进行类路径扫描。 有关详细信息,请参阅注释支持@IntegrationComponentScanSpring中文文档

“@EnableMessageHistory”

现在,您可以使用类中的注释启用消息历史记录。 此外,JMX MBean 可以修改消息历史记录设置。 此外,还可以跟踪带注释的终结点(如 、 等)的自动创建的实例。 有关详细信息,请参阅消息历史记录@EnableMessageHistory@ConfigurationMessageHistoryMessageHandler@ServiceActivator@SplitterSpring中文文档

@MessagingGateway

现在,您可以使用注释配置邮件网关接口。 它是 XML 元素的类似物。 有关详细信息,请参阅@MessagingGateway注释@MessagingGateway<int:gateway/>Spring中文文档

Spring 启动@EnableAutoConfiguration

除了前面提到的注解之外,我们还引入了一个钩子,允许使用 Spring Boot 的注解来配置 Spring Integration 基础架构 bean。 有关详细信息,请参阅《Spring Boot 参考指南》中的“自动配置”@EnableIntegration@EnableAutoConfigurationSpring中文文档

@GlobalChannelInterceptor

除了上面提到的注释外,我们还介绍了注释。 有关详细信息,请参阅注释支持@EnableIntegration@GlobalChannelInterceptorSpring中文文档

@IntegrationConverter

我们引入了注释作为组件的类似物。 有关详细信息,请参阅注释支持@IntegrationConverter<int:converter/>Spring中文文档

@EnablePublisher

我们添加了注释,以允许对注释进行规范。 有关详细信息,请参阅注释支持@EnablePublisherdefault-publisher-channel@PublisherSpring中文文档

Redis 通道消息存储

我们添加了一个 Redis,该 Redis 经过优化,可在支持持久性时使用。 有关更多信息,请参阅 Redis 通道消息存储库。MessageGroupStoreQueueChannelSpring中文文档

我们添加了一个 Redis 。 您可以使用它按优先级检索邮件。 有关更多信息,请参阅 Redis 通道消息存储库。ChannelPriorityMessageStoreSpring中文文档

MongodDB通道消息存储库

MongoDB 支持现在提供 ,这是一个特定于通道的实现。 使用 ,可以在元素中使用它来实现持久化消息的优先级轮询。 有关更多信息,请参阅 MongoDB 通道消息存储库。MongoDbChannelMessageStoreMessageStorepriorityEnabled = true<int:priority-queue>Spring中文文档

@EnableIntegrationMBeanExport

现在,您可以在类中启用带有注释的注释。 有关更多信息,请参见 MBean ExporterIntegrationMBeanExporter@EnableIntegrationMBeanExport@ConfigurationSpring中文文档

ChannelSecurityInterceptorFactoryBean

ChannelSecurityInterceptorFactoryBean现在支持为使用类的消息通道配置 Spring Security。 有关更多信息,请参阅 Spring Integration 中的安全性@ConfigurationSpring中文文档

Redis 命令网关

Redis 支持现在提供组件,以使用该方法执行通用 Redis 命令。 有关更多信息,请参阅 Redis 出站命令网关<outbound-gateway>RedisConnection#executeSpring中文文档

RedisLockRegistry

现在可用于支持对多个应用程序实例和服务器可见的全局锁。 它们可以与跨多个应用程序实例的聚合消息处理程序一起使用,以便仅在一个实例上进行组释放。 有关更多信息,请参阅 Redis Lock Registry and AggregatorRedisLockRegistrySpring中文文档

@Poller

基于注释的消息传递配置现在可以具有属性。 这意味着用 、 和类似批注批注的方法现在可以使用对 的引用。 有关详细信息,请参阅注释支持poller@ServiceActivator@AggregatorinputChannelPollableChannelSpring中文文档

@InboundChannelAdapter和带注释的端点SmartLifecycle

我们添加了方法注释。 它是 XML 组件的类似物。 此外,所有消息注释现在都提供了选项。 有关详细信息,请参阅注释支持@InboundChannelAdapter<int:inbound-channel-adapter>SmartLifecycleSpring中文文档

Twitter 搜索出站网关

我们添加了一个新的 twitter 端点:. 与每次使用相同搜索查询轮询的搜索入站适配器不同,出站网关允许按需自定义查询。 有关更多信息,请参阅 Spring Integration Social Twitter<int-twitter-search-outbound-gateway/>Spring中文文档

@BridgeFrom和注释@BridgeTo

我们引入了 和 方法注释来标记类中的 bean。 有关详细信息,请参阅注释支持@BridgeFrom@BridgeTo@BeanMessageChannel@ConfigurationSpring中文文档

元消息注释

消息传递注释(、、 等)现在可以配置为用户定义的消息传递注释的元注释。 此外,用户定义的批注可以具有相同的属性(、、 等)。 有关详细信息,请参阅注释支持@ServiceActivator@Router@MessagingGatewayinputChannel@PollerautoStartupSpring中文文档

一般更改

本节介绍从 3.0 版到 4.0 版的一般更改。Spring中文文档

需要Spring Framework 4.0

我们将核心消息传递抽象(、 等)移到了 Spring Framework 模块中。 直接在代码中引用这些类的开发人员需要进行更改,如 3.0 到 4.0 迁移指南的第一部分所述。MessageMessageChannelspring-messagingSpring中文文档

XPath 标头 Enricher 的标头类型

我们引入了 的 子元素的属性。 此属性提供标头值的目标类型(XPath 表达式计算结果将转换为该值)。 有关详细信息,请参阅 XPath 标头扩充器header-typeheader<int-xml:xpath-header-enricher>Spring中文文档

JSON 转换器的对象:节点结果

我们引入了 . 此属性为将对象映射到 JSON 的结果提供目标类型。 它支持(默认)和 . 有关更多信息,请参阅从版本 3.0 开始,Spring Integration 还提供了一个内置的 #xpath SpEL 函数,用于表达式。result-type<int:object-to-json-transformer>STRINGNODESpring中文文档

JMS 标头映射

现在将传入标头映射到 Spring Integration 标头。 以前,仅考虑用于出站消息。 有关更多信息,请参阅将消息头映射到 JMS 消息和从 JMS 消息映射消息。DefaultJmsHeaderMapperJMSPrioritypriorityprioritySpring中文文档

JMS 出站通道适配器

JMS 出站通道适配器现在支持该属性(缺省值:)。 以前,您必须注入自定义的才能使用事务。 请参阅出站通道适配器session-transactedfalseJmsTemplateSpring中文文档

JMS 入站通道适配器

JMS 入站通道适配器现在支持属性(缺省值:)。 以前,您必须注入自定义的才能使用事务。 适配器允许在 中“交易”,这是不正确的,不起作用。 不再允许此值。 请参阅入站通道适配器session-transactedfalseJmsTemplateacknowledgeModeSpring中文文档

数据类型通道

现在,您可以指定在将有效负载(如有必要)转换为数据类型通道中接受的实例之一时要使用的实例。 有关详细信息,请参阅数据类型通道配置MessageConverterdatatypeSpring中文文档

更简单的重试建议配置

我们添加了简化的命名空间支持,以配置 . 有关更多信息,请参阅配置重试建议RequestHandlerRetryAdviceSpring中文文档

关联端点:基于时间的发布策略

我们在 和 中添加了互斥 和 属性。 这些属性允许强制完成部分 ,前提是 不释放组,并且在指定的时间内没有进一步的消息到达。 有关更多信息,请参阅使用 XML 配置聚合器group-timeoutgroup-timeout-expression<int:aggregator><int:resequencer>MessageGroupReleaseStrategySpring中文文档

Redis 元数据存储

现在的实现 ,例如,在多个应用程序实例或服务器环境中的实现中使用它。 有关更多信息,请参阅 Redis 元数据存储读取文件FTP 入站通道适配器SFTP 入站通道适配器RedisMetadataStoreConcurrentMetadataStoreAbstractPersistentAcceptOnceFileListFilterSpring中文文档

JdbcChannelMessageStorePriorityChannel

T'JdbcChannelMessageStore' 现在实现 ,允许它用作实例的引用。 有关详细信息,请参阅支持消息通道PriorityCapableChannelMessageStoremessage-storepriority-queueSpring中文文档

AMQP 终结点交付模式

默认情况下,Spring AMQP 会在代理上创建持久性消息。 您可以通过设置标头或自定义映射器来覆盖此行为。 我们向适配器添加了一个方便的属性,以便更轻松地配置此重要设置。 有关详细信息,请参阅出站通道适配器出站网关amqp_deliveryModedefault-delivery-modeSpring中文文档

FTP 超时

现在公开了 、 和 属性,避免了对工厂进行子类化来设置这些公共属性的需要。 这些方法仍可用于更高级的配置。 有关详细信息,请参阅 FTP 会话工厂DefaultFtpSessionFactoryconnectTimeoutdefaultTimeoutdataTimeoutpostProcess*Spring中文文档

唽:StatusUpdatingMessageHandler

() 现在支持构建用于更新时间线状态的对象的属性。 例如,此功能允许附加图像。 有关更多信息,请参阅 Spring Integration Social TwitterStatusUpdatingMessageHandler<int-twitter:outbound-channel-adapter>tweet-data-expressionorg.springframework.social.twitter.api.TweetDataSpring中文文档

JPA 检索网关:id-expression

我们引入了 to perform 的属性。 有关详细信息,请参阅检索出站网关id-expression<int-jpa:retrieving-outbound-gateway>EntityManager.find(Class entityClass, Object primaryKey)Spring中文文档

TCP 反序列化事件

当其中一个标准反序列化程序在将输入流解码为消息时遇到问题时,它现在会发出一个 ,让应用程序在发生异常时检查数据。 有关详细信息,请参阅 TCP 连接事件TcpDeserializationExceptionEventSpring中文文档

对定义进行消息传递注释@Bean

现在,您可以在类中的定义上配置消息注释(、、 等)。 有关详细信息,请参阅注释支持@ServiceActivator@Router@InboundChannelAdapter@Bean@ConfigurationSpring中文文档