如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

2.1 与 2.2 版本之间的变更

请参阅 迁移指南 以了解可能影响您应用程序的重要变更。 您可以在 Wiki 上找到从 2.1 版本起所有版本的迁移指南。spring-doc.cadn.net.cn

新组件

版本 2.2 添加了许多新组件。spring-doc.cadn.net.cn

RedisStore入站和出站通道适配器

Spring Integration 现在拥有 RedisStore 个入站和出站通道适配器,允许您向 Redis 集合写入和读取 Message 个有效负载。 更多信息,请参阅 RedisStore 出站通道适配器Redis Store 入站通道适配器spring-doc.cadn.net.cn

MongoDB 入站和出站通道适配器

Spring Integration 现在提供了 MongoDB 的入站和出站通道适配器,允许您向 MongoDB 文档存储写入和读取 Message 有效载荷。 更多信息,请参见 MongoDB 出站通道适配器MongoDB 入站通道适配器spring-doc.cadn.net.cn

JPA 端点

Spring Integration 现已包含用于 Java 持久化 API (JPA) 的组件,用于检索和持久化 JPA 实体对象。 JPA 适配器包含以下组件:spring-doc.cadn.net.cn

有关更多信息,请参见 JPA 支持spring-doc.cadn.net.cn

常规变更

本节描述了从版本 2.1 到版本 2.2 的一般性变更。spring-doc.cadn.net.cn

Spring 3.1 默认使用

Spring Integration 现在使用 Spring 3.1。spring-doc.cadn.net.cn

为端点添加行为

向轮询器添加<advice-chain/>的功能已经存在了一段时间。 然而,此功能所引入的行为会影响整个集成流程。 它并未解决为单个端点添加(例如)重试机制的能力。 2.2 版本引入了将<request-handler-advice-chain/>连接到多个端点的功能。spring-doc.cadn.net.cn

此外,我们为此目的添加了三个标准建议类:spring-doc.cadn.net.cn

有关更多信息,请参阅 向端点添加行为spring-doc.cadn.net.cn

事务同步与伪事务

轮询器现在可以参与 Spring 的事务同步功能。 这使得能够根据事务是提交还是回滚,来同步诸如通过入站通道适配器重命名文件等操作。spring-doc.cadn.net.cn

此外,当不存在“真实”事务时,您可以通过使用 PseudoTransactionManager 来启用这些功能。spring-doc.cadn.net.cn

有关更多信息,请参阅 事务同步spring-doc.cadn.net.cn

文件适配器:改进了文件覆盖和追加处理

使用文件出站通道适配器或文件出站网关时,您可以使用一个新的mode属性。 在 Spring Integration 2.2 之前,如果目标文件已存在,则会被替换。 现在您可以指定以下选项:spring-doc.cadn.net.cn

有关更多信息,请参阅 处理现有目标文件spring-doc.cadn.net.cn

为更多出站网关添加了回复超时

XML 命名空间支持为以下出站网关添加了 reply-timeout 属性:spring-doc.cadn.net.cn

Spring-AMQP 1.1

Spring Integration 现在使用 Spring AMQP 1.1。 这使以下功能可在 Spring Integration 应用程序中使用:spring-doc.cadn.net.cn

JDBC 支持 - 存储过程组件

SpEL 支持

在使用 Spring Integration JDBC Adapter 的存储过程组件时,现在可以通过使用 Spring 表达式语言 (SpEL) 来提供存储过程名称或存储函数名称。spring-doc.cadn.net.cn

这样做允许您指定在运行时调用的存储过程。 例如,您可以通过消息头提供想要执行的存储过程名称。 更多信息,请参见 存储过程spring-doc.cadn.net.cn

JMX 支持

存储过程组件现在提供基本的 JMX 支持,将其部分属性暴露为 MBean:spring-doc.cadn.net.cn

JDBC 支持:出站网关

当您使用 JDBC 出站网关时,更新查询不再是强制性的。 您现在可以仅通过请求消息作为参数源来提供选择查询。spring-doc.cadn.net.cn

JDBC 支持:特定通道的消息存储实现

我们添加了一种新的消息通道特定消息存储实现,通过使用数据库特定的 SQL 查询提供了更具可扩展性的解决方案。 有关更多信息,请参阅 备份消息通道spring-doc.cadn.net.cn

有序关闭

我们向IntegrationMBeanExporter添加了一个名为stopActiveComponents()的方法。 它允许Spring Integration应用程序以有序的方式关闭,禁止新的入站消息进入某些适配器,并等待一段时间以允许正在处理的消息完成。spring-doc.cadn.net.cn

JMS 出站网关改进

您现在可以配置 JMS 出站网关,使其使用 MessageListener 容器来接收回复。 这样做可以提高网关的性能。spring-doc.cadn.net.cn

ObjectToJsonTransformer

默认情况下,ObjectToJsonTransformer现在将content-type标头设置为application/json。 有关更多信息,请参阅转换器spring-doc.cadn.net.cn

HTTP 支持

通过 HTTP 进行 Java 序列化默认不再启用。 此前,当在 expected-response-type 对象上设置 Serializable 时,Accept 头部未能正确设置。 我们已更新 SerializingHttpMessageConverter,将 Accept 头部设置为 application/x-java-serialized-object。 然而,由于这可能导致与现有应用程序不兼容,我们决定不再自动将此转换器添加到 HTTP 端点。spring-doc.cadn.net.cn

如果您希望使用 Java 序列化,需要通过使用 message-converters 属性(在 XML 配置中)或 setMessageConverters() 方法(在 Java 中),将 SerializingHttpMessageConverter 添加到相应的端点。spring-doc.cadn.net.cn

或者,您可能希望考虑使用 JSON。 它通过在类路径中包含 Jackson 来启用。spring-doc.cadn.net.cn