3.0 和 4.0 之间的更改

请参阅迁移指南,了解可能影响您的应用程序的重要更改。您可以在wiki上找到所有版本(回溯到 2.1)的迁移指南。

新组件

4.0 版本新增了许多组件。

MQTT 通道适配器

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

@EnableIntegration

我们添加了@EnableIntegration注解,以允许在使用@Configuration类时声明标准的 Spring Integration bean。有关更多信息,请参阅注解支持

@IntegrationComponentScan

我们添加了@IntegrationComponentScan注解,以允许对 Spring Integration 特定组件进行类路径扫描。有关更多信息,请参阅注解支持

“@EnableMessageHistory”

您现在可以在@Configuration类中使用@EnableMessageHistory注解启用消息历史记录。此外,JMX MBean 可以修改消息历史记录设置。此外,MessageHistory可以跟踪注解端点(例如@ServiceActivator@Splitter等)自动创建的MessageHandler实例。有关更多信息,请参阅消息历史记录

@MessagingGateway

您现在可以使用@MessagingGateway注解配置消息网关接口。它类似于<int:gateway/>XML 元素。有关更多信息,请参阅@MessagingGateway注解

Spring Boot @EnableAutoConfiguration

除了前面提到的@EnableIntegration注解之外,我们还引入了一个钩子,允许使用 Spring Boot 的@EnableAutoConfiguration注解配置 Spring Integration 基础设施 bean。有关更多信息,请参阅 Spring Boot 参考指南中的“自动配置”

@GlobalChannelInterceptor

除了上面提到的@EnableIntegration注解之外,我们还引入了@GlobalChannelInterceptor注解。有关更多信息,请参阅注解支持

@IntegrationConverter

我们引入了@IntegrationConverter注解作为<int:converter/>组件的模拟。有关更多信息,请参阅注解支持

@EnablePublisher

我们添加了@EnablePublisher注解,以允许为@Publisher注解指定default-publisher-channel。有关更多信息,请参阅注解支持

Redis 通道消息存储

我们添加了一个 Redis MessageGroupStore,它经过优化,可用于在持久化QueueChannel时作为后端。有关更多信息,请参阅Redis 通道消息存储

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

MongoDB 通道消息存储

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

@EnableIntegrationMBeanExport

您现在可以在@Configuration类中使用@EnableIntegrationMBeanExport注解启用IntegrationMBeanExporter。有关更多信息,请参阅MBean 导出器

ChannelSecurityInterceptorFactoryBean

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

Redis 命令网关

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

RedisLockRegistry

RedisLockRegistry现在可用,以支持对多个应用程序实例和服务器可见的全局锁。这些可以与多个应用程序实例的聚合消息处理程序一起使用,以便仅在一个实例上发生组释放。有关更多信息,请参阅Redis 锁注册表聚合器

@Poller

基于注解的消息配置现在可以有一个poller属性。这意味着用@ServiceActivator@Aggregator和类似注解注解的方法现在可以使用引用PollableChannelinputChannel。有关更多信息,请参阅注解支持

@InboundChannelAdapter和带注解端点的SmartLifecycle

我们添加了@InboundChannelAdapter方法注解。它类似于<int:inbound-channel-adapter>XML 组件。此外,所有消息注解现在都提供SmartLifecycle选项。有关更多信息,请参阅注解支持

Twitter 搜索出站网关

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

@BridgeFrom@BridgeTo注解

我们引入了@BridgeFrom@BridgeTo@Bean方法注解,以标记@Configuration类中的MessageChannel bean。有关更多信息,请参阅注解支持

元消息注解

消息注解(@ServiceActivator@Router@MessagingGateway等)现在可以配置为用户定义的消息注解的元注解。此外,用户定义的注解可以具有相同的属性(inputChannel@PollerautoStartup等)。有关更多信息,请参阅注解支持

一般更改

本节描述了从 3.0 版本到 4.0 版本的一般更改。

要求 Spring Framework 4.0

我们将核心消息抽象(MessageMessageChannel等)移动到 Spring Framework 的spring-messaging模块。在其代码中直接引用这些类的开发人员需要进行更改,如3.0 到 4.0 迁移指南的第一节所述。

XPath 标头增强器:标头类型

我们为<int-xml:xpath-header-enricher>header子元素引入了header-type属性。此属性提供了标头值的目标类型(XPath 表达式评估的结果将转换为此类型)。有关更多信息,请参阅XPath 标头增强器

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

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

JMS 标头映射

DefaultJmsHeaderMapper现在将传入的JMSPriority标头映射到 Spring Integration priority标头。以前,priority仅用于出站消息。有关更多信息,请参阅将消息标头映射到 JMS 消息和从 JMS 消息映射

JMS 出站通道适配器

JMS 出站通道适配器现在支持session-transacted属性(默认值:false)。以前,您必须注入自定义的JmsTemplate才能使用事务。请参阅出站通道适配器

JMS 入站通道适配器

JMS 入站通道适配器现在支持session-transacted属性(默认值:false)。以前,您必须注入自定义的JmsTemplate才能使用事务。该适配器允许在acknowledgeMode中使用“transacted”,这是不正确的并且不起作用。此值不再允许。请参阅入站通道适配器

数据类型通道

您现在可以指定一个MessageConverter,用于在数据类型通道中将有效载荷转换为(如果需要)接受的datatype实例之一。有关更多信息,请参阅数据类型通道配置

更简单的重试建议配置

我们添加了简化的命名空间支持来配置RequestHandlerRetryAdvice。有关更多信息,请参阅配置重试建议

关联端点:基于时间的释放策略

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

Redis 元数据存储

RedisMetadataStore现在实现了ConcurrentMetadataStore,使其可以在多个应用程序实例或服务器环境中用于AbstractPersistentAcceptOnceFileListFilter实现。有关更多信息,请参阅Redis 元数据存储读取文件FTP 入站通道适配器SFTP 入站通道适配器

JdbcChannelMessageStorePriorityChannel

JdbcChannelMessageStore现在实现了PriorityCapableChannelMessageStore,使其可以用作priority-queue实例的message-store引用。有关更多信息,请参阅后端消息通道

AMQP 端点交付模式

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

FTP 超时

DefaultFtpSessionFactory现在公开了connectTimeoutdefaultTimeoutdataTimeout属性,避免了子类化工厂以设置这些常见属性的需要。postProcess*方法仍然可用于更高级的配置。有关更多信息,请参阅FTP 会话工厂

Twitter:StatusUpdatingMessageHandler

StatusUpdatingMessageHandler<int-twitter:outbound-channel-adapter>)现在支持tweet-data-expression属性来构建org.springframework.social.twitter.api.TweetData对象以更新时间线状态。此功能允许例如附加图像。有关更多信息,请参阅Spring Integration Social Twitter

JPA 检索网关:id-expression

我们为<int-jpa:retrieving-outbound-gateway>引入了id-expression属性以执行EntityManager.find(Class entityClass, Object primaryKey)。有关更多信息,请参阅检索出站网关

TCP 反序列化事件

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

@Bean定义上的消息注解

您现在可以在@Configuration类中的@Bean定义上配置消息注解(@ServiceActivator@Router@InboundChannelAdapter等)。有关更多信息,请参阅注解支持

© . This site is unofficial and not affiliated with VMware.