对于最新稳定版本,请使用Spring AMQP 4.0.0spring-doc.cadn.net.cn

自1.5以来1.6版本的变化

测试支持

现在提供了一个新的测试支持库。 更多信息请参见测试支持spring-doc.cadn.net.cn

架构工人

提供流畅API用于配置的构建器队列交换物品现已开放。 更多信息请参见构建器API中的队列和交换spring-doc.cadn.net.cn

命名空间变更

连接工厂

你现在可以添加一个线程工厂连接到连接工厂的 BEAN 声明——例如,用于命名线程 由AMQP-client图书馆。 更多信息请参见连接与资源管理spring-doc.cadn.net.cn

当你使用缓存模式.连接,你现在可以限制允许的总连接数。 更多信息请参见连接与资源管理spring-doc.cadn.net.cn

队列定义

你现在可以为匿名队列提供命名策略。 看匿名队列更多信息请见。spring-doc.cadn.net.cn

监听器容器变更

空闲消息监听器检测

你现在可以配置监听器容器来发布ApplicationEvent闲置时的时刻。 更多信息请参见“检测闲置异步消费者”。spring-doc.cadn.net.cn

不匹配队列检测

默认情况下,当监听器容器启动时,如果检测到属性或参数不匹配的队列, 容器会记录异常,但会继续监听。 容器现在拥有一个性质,称为不匹配队列致命,防止容器(及上下文)发生 如果启动时检测到问题,就启动。 如果问题后来被检测到,比如连接失败恢复后,它还会停止容器。 更多信息请参见消息监听器容器配置spring-doc.cadn.net.cn

监听器容器日志

现在,听众容器提供了其豆名向内部SimpleAsyncTaskExecutor作为threadNamePrefix. 它对日志分析非常有用。spring-doc.cadn.net.cn

默认错误处理程序

默认的错误处理程序(条件拒绝错误处理)现在认为不可恢复@RabbitListener例外判定为致命。 更多信息请参见例外处理spring-doc.cadn.net.cn

自动宣告兔子管理员实例

参见消息监听器容器配置 (自动声明)对该选项的语义在使用上有所变化 之兔子管理员应用上下文中的实例。spring-doc.cadn.net.cn

Amqp模板: 收发并有暂停

一些新的接收()方法:超时已为Amqp模板以及其兔子模板实现。 更多信息请参见民调消费者spring-doc.cadn.net.cn

异步兔子模板

一个新的异步兔子模板已经被引入。 该模板提供了多种发送和接收方法,其中返回值为可听未来,可以 之后可以用来同步或异步获得结果。 更多信息请参见异步兔子模板spring-doc.cadn.net.cn

兔子模板变化

1.4.1 引入了在代理支持时使用直接回复的功能。 这比为每个回复使用临时队列更高效。 这个版本允许你通过设置useTemporaryReplyQueues属性到true. 更多信息请参见RabbitMQ直接回复spring-doc.cadn.net.cn

兔子模板现在支持一个用户ID-表达式 (用户ID表达当使用 Java 配置时)。 更多信息请参见已验证的用户IDRabbitMQ文档和验证用户IDspring-doc.cadn.net.cn

消息属性

相关性

关联Id消息属性现在可以是字符串. 更多信息请参见消息属性转换器spring-doc.cadn.net.cn

长字符串首部

此前,默认消息属性转换器“转换”的头部长度超过长字符串限制(默认1024) 转给DataInputStream(实际上,它提到了长绳实例DataInputStream). 输出时,该头部不会被转换(除非转换为字符串——例如,java.io.DataInputStream@1d057a39通过呼叫toString()在直播中)。spring-doc.cadn.net.cn

随着这次发布,Long长绳实例现为长绳实例默认存在。 您可以通过以下方式访问这些内容getBytes[],toString()getStream()方法。 一来袭长绳现在输出时也正确“转换”了。spring-doc.cadn.net.cn

入站交付方式

传递模式属性不再映射到MessageProperties.deliveryMode. 此变化避免了相同的非预期传播消息属性对象用于发送外发消息。 相反,进站传递模式头部映射为MessageProperties.receivedDeliveryMode.spring-doc.cadn.net.cn

使用带注释端点时,头部会在AmqpHeaders.RECEIVED_DELIVERY_MODE.spring-doc.cadn.net.cn

入站用户ID

user_id属性不再映射到MessageProperties.userID. 此变化避免了相同的非预期传播消息属性对象用于发送外发消息。 相反,进站用户ID头部映射为MessageProperties.receivedUserID.spring-doc.cadn.net.cn

使用带注释端点时,头部会在名为AmqpHeaders.RECEIVED_USER_ID.spring-doc.cadn.net.cn

兔子管理员变化

宣告失败

此前,忽略声明失败该旗帜仅在IOException频道上的(如“mis-matched” 争论)。 现在,它适用于任何例外情况(例如超时例外). 此外,还有一个DeclarationExceptionEvent现在,只要声明失败,才会被公布。 这兔子管理员最后声明事件也作为属性可用lastDeclarationExceptionEvent. 更多信息请参见配置经纪人。spring-doc.cadn.net.cn

@RabbitListener变化

每颗豆子要有多个容器

当你使用 Java 8 或更高版本时,现在可以添加多个@RabbitListener注释@Bean类别或 他们的方法。 使用Java 7或更早版本时,可以使用@RabbitListeners容器注释以提供相同的功能 功能性。 看@Repeatable @RabbitListener更多信息请见。spring-doc.cadn.net.cn

@SendToSpEL表达式

@SendTo对于没有回复属性现在可以是针对 请求/回复。 更多信息请参见回复管理spring-doc.cadn.net.cn

@QueueBinding改进

你现在可以在@QueueBinding附注。 头部交换现已支持@QueueBinding. 更多信息请参见注释驱动监听器端点spring-doc.cadn.net.cn

延迟消息交换

Spring AMQP 现在对 RabbitMQ 延迟消息交换插件提供了一流的支持。 更多信息请参见延迟消息交换spring-doc.cadn.net.cn

交易所内部旗帜

任何交换定义现在可以标记为内部兔子管理员当 宣布交换。 更多信息请参见配置经纪人。spring-doc.cadn.net.cn

缓存连接工厂变化

缓存连接工厂缓存统计

缓存连接工厂现在在运行时和 JMX 上提供缓存属性。 更多信息请参见运行时缓存属性spring-doc.cadn.net.cn

访问底层的RabbitMQ连接工厂

新增了一个进气口,以便进入底层工厂。 例如,你可以用这个获取器添加自定义连接属性。 更多信息请参见“添加自定义客户端连接属性”。spring-doc.cadn.net.cn

通道缓存

默认信道缓存大小已从1增加到25。 更多信息请参见连接与资源管理spring-doc.cadn.net.cn

此外,SimpleMessageListenerContainer不再将缓存大小调整到至少与数字相当 之并发消费者——这其实是多余的,因为容器消费者通道从未被缓存。spring-doc.cadn.net.cn

兔子连接工厂豆

工厂豆现在暴露了一个属性,用来为由此产生的连接添加客户端连接属性 厂。spring-doc.cadn.net.cn

Java 反序列化

现在你可以在使用 Java 反序列化时配置一个“允许列表”的允许类。 如果你接受包含序列化 Java 对象的消息,建议考虑创建一个允许列表 不可信的消息来源。 更多信息请参见 amqp/message-converters.adoc#java-deserialization[Java Deserialization]。spring-doc.cadn.net.cn

JSON消息转换器

JSON消息转换器的改进现在允许使用没有类型信息的消息 在消息头部。 参见注释方法的消息转换Jackson2JsonMessageConverter更多信息请见。spring-doc.cadn.net.cn

日志附录

Log4j 2

新增了一个log4j 2附加词,附加词现在可以配置为地址连接性质 到一个中介集群。spring-doc.cadn.net.cn

客户端连接属性

你现在可以为RabbitMQ连接添加自定义客户端连接属性。spring-doc.cadn.net.cn