package com.zy.acs.hex.config; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Slf4j @Configuration public class RabbitConfig { @Bean public RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory) { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> { if (ack) { log.info("消息成功发送到Exchange"); } else { log.info("消息发送失败:" + cause); } }); // 也可以设置返回类型为mandatory,这样当消息无法路由到任何队列时,会返回给生产者一个Basic.Return。 rabbitTemplate.setMandatory(true); rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> { log.info("消息无法路由到队列: " + replyText); }); return rabbitTemplate; } }