请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用默认的rabbtiTemplate的话,如何实现发送者消息确认和消息返回的实现逻辑?

  1. 如果使用默认的rabbitTemplate(及全部使用application.properties的配置),但是消息发送确认confirmListener和消息返回returnListener的实现逻辑在那里配置?
  2. 如果通过配置类显式声明rabbitTemplate的话,application.properties的配置又不起作用(比如spring.rabbitmq.template.mandatory=true)。
  3. 总的来说,如何在使用配置文件的情况下实现消息发送确认confirmListener和消息返回returnListener的实现逻辑?

正在回答 回答被采纳积分+3

1回答

Moody 2021-03-25 16:01:23

我在官方文档没找到可以通过配置 设置ConfirmListener和returnListener的方法,如果实在需要通过配置文件来设置ConfirmListener和returnListener,可以试试使用xml声明rabbitTemplate,并在xml里调用两个set方法。(这个办法我也没有试过)

 Returns are sent to the client by it registering a RabbitTemplate.ReturnsCallback by calling setReturnsCallback(ReturnsCallback callback).
Confirms are sent to the client by it registering a RabbitTemplate.ConfirmCallback by calling setConfirmCallback(ConfirmCallback callback).

参考:

官方文档:https://docs.spring.io/spring-amqp/docs/current/reference/html/#template-confirms

Spring 在applicationContext.xml文件中调用某个对象的方法并赋值:

https://blog.csdn.net/MRZZXzzx/article/details/77513106

0 回复 有任何疑惑可以回复我~
  • 提问者 limeOracle #1
    一直想找一个接口实现,然后SpringBoot-RabbitMQ自动帮我注册RabbitTemplate.ConfirmCallback和RabbitTemplate.ReturnCallback接口的逻辑,一直没找到。想看看SpringBoot注入的默认RabbitTemplate是都有哪些配置,发现RabbitAutoConfiguration类注入的RabbitTemplate没有设置RabbitTemplate.ConfirmCallback和RabbitTemplate.ReturnCallback的逻辑。于是我就想着让RabbitMQConfig配置类实现RabbitTemplate.ConfirmCallback, RabbitTemplate.ReturnCallback这两个接口,再实现InitializingBean接口,在afterPropertiesSet方法里        rabbitTemplate.setConfirmCallback(this::confirm);
            rabbitTemplate.setReturnCallback(this::returnedMessage); 设置confirm和returnedMessage。这样确实是能使SpringBoot的配置生效,并且自定义confirm和returnedMessage方法逻辑。
    回复 有任何疑惑可以回复我~ 2021-03-25 16:45:38
  • 提问者 limeOracle #2
    但是现在有一个疑惑就是SpringBoot会不会在afterPropertiesSet方法还没有成功设置confirm和returnedMessage时,就开始使用RabbitTemplate了?
    回复 有任何疑惑可以回复我~ 2021-03-25 16:47:32
  • Moody 回复 提问者 limeOracle #3
    这样可以
    回复 有任何疑惑可以回复我~ 2021-03-25 16:47:39

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信