其他分享
首页 > 其他分享> > 如何在Spring AMQP中使用拦截器

如何在Spring AMQP中使用拦截器

作者:互联网

一旦将template.convertAndSend调用,在将消息传递到RabbitMQ之前,是否有一种方法可以拦截消息.

还有什么方法可以在到达处理程序之前拦截消息?

我可以使用发布者的PostProcessor处理消息,但更喜欢使用拦截器.

public class TestPostProcessor implements MessagePostProcessor {

    @Autowired
    Tracer defaultTracer;

    @Override
    public Message postProcessMessage(Message message) throws AmqpException {
        //.....
        //.... 
        return message;
    }
}

有什么建议么?

解决方法:

MessagePostProcessor是拦截器的一种形式.

有两种方法可以调用一种-使用以MPP作为参数的重载convertAndSend()方法之一,或使用setBeforePublishPostPostors()将一个或多个添加到RabbitTemplate中.

您还可以使用setAfterReceivePostProcessors()截获收到的消息,该方法在从receive()方法返回收到的消息之前调用.

侦听器容器在接收之后以及通过setAfterReceivePostProcessors()方法传递给侦听器之前,也支持MPP.

标签:spring-amqp,spring-boot,rabbitmq,spring
来源: https://codeday.me/bug/20191026/1937658.html