如何在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