存在许多扩展点。 它们允许您在消息发送到 RabbitMQ 之前或收到消息后立即对消息执行一些处理。Spring中文文档

正如在消息转换器中所看到的,一个这样的扩展点是在操作中,您可以在其中提供 . 例如,在转换 POJO 后,您可以在 .AmqpTemplateconvertAndReceiveMessagePostProcessorMessagePostProcessorMessageSpring中文文档

从版本 1.4.2 开始,向 - 和 . 第一个使后处理器能够在发送到 RabbitMQ 之前立即运行。 使用批处理(请参阅批处理)时,将在组装批处理后和发送批处理之前调用此操作。 第二个在收到消息后立即调用。RabbitTemplatesetBeforePublishPostProcessors()setAfterReceivePostProcessors()Spring中文文档

这些扩展点用于压缩等功能,为此,提供了多种实现。,并在发送前压缩消息,以及 ,并解压缩收到的消息。MessagePostProcessorGZipPostProcessorZipPostProcessorDeflaterPostProcessorGUnzipPostProcessorUnzipPostProcessorInflaterPostProcessorSpring中文文档

从版本 2.1.5 开始,可以使用创建原始消息属性副本的选项进行配置。 默认情况下,出于性能原因,这些属性会重用,并使用压缩内容编码和可选标头进行修改。 如果保留对原始出站消息的引用,则其属性也将更改。 因此,如果应用程序使用这些消息后处理器保留出站消息的副本,请考虑打开该选项。GZipPostProcessorcopyProperties = trueMessageProperties.SPRING_AUTO_DECOMPRESScopyProperties
从版本 2.1.5 开始,可以使用创建原始消息属性副本的选项进行配置。 默认情况下,出于性能原因,这些属性会重用,并使用压缩内容编码和可选标头进行修改。 如果保留对原始出站消息的引用,则其属性也将更改。 因此,如果应用程序使用这些消息后处理器保留出站消息的副本,请考虑打开该选项。GZipPostProcessorcopyProperties = trueMessageProperties.SPRING_AUTO_DECOMPRESScopyProperties
从版本 2.2.12 开始,您可以配置压缩后处理器在内容编码元素之间使用的分隔符。 在版本 2.2.11 及更早版本中,它被硬编码为 ,它现在设置为压缩器上的属性为 。 当您的使用者升级到 2.2.11 或更高版本时,您可以恢复为默认值 ', '。:, ` by default. The decompressors will work with both delimiters. However, if you publish messages with 2.3 or later and consume with 2.2.11 or earlier, you MUST set the `encodingDelimiter:
从版本 2.2.12 开始,您可以配置压缩后处理器在内容编码元素之间使用的分隔符。 在版本 2.2.11 及更早版本中,它被硬编码为 ,它现在设置为压缩器上的属性为 。 当您的使用者升级到 2.2.11 或更高版本时,您可以恢复为默认值 ', '。:, ` by default. The decompressors will work with both delimiters. However, if you publish messages with 2.3 or later and consume with 2.2.11 or earlier, you MUST set the `encodingDelimiter:

同样,也有一个方法,让在容器收到消息后执行解压缩。SimpleMessageListenerContainersetAfterReceivePostProcessors()Spring中文文档

从版本 2.1.4 开始,并已添加到允许将新的后处理器分别附加到发布前和接收后处理器列表中。 此外,还提供了删除后处理器的方法。 同样,还添加了 和 方法。 有关更多详细信息,请参阅 和 的 Javadoc。addBeforePublishPostProcessors()addAfterReceivePostProcessors()RabbitTemplateAbstractMessageListenerContaineraddAfterReceivePostProcessors()removeAfterReceivePostProcessor()RabbitTemplateAbstractMessageListenerContainerSpring中文文档