org.springframework.boot
spring-boot-starter-amqp
2.配置相关配置application.yaml
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: admin
password: qwe@123
#虚拟host 可以不设置,使用server默认host
#virtual-host: JCcccHost
#确认消息已发送到交换机(Exchange)
publisher-/confirm/is: true
#确认消息已发送到队列(Queue)
publisher-returns: true
3.交换机分为三种交换机
package com.zrp.mq.rabbitmq.config;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitConfig {
@Bean
public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate();
rabbitTemplate.setConnectionFactory(connectionFactory);
//设置开启Mandatory,才能触发回调函数,无论消息推送结果怎么样都强制调用回调函数
rabbitTemplate.setMandatory(true);
rabbitTemplate.set/confirm/iCallback(new RabbitTemplate./confirm/iCallback() {
@Override
public void /confirm/i(CorrelationData correlationData, boolean ack, String cause) {
System.out.println("/confirm/iCallback: " + "相关数据:" + correlationData);
System.out.println("/confirm/iCallback: " + "确认情况:" + ack);
System.out.println("/confirm/iCallback: " + "原因:" + cause);
}
});
rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
@Override
public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
System.out.println("ReturnCallback: " + "消息:" + message);
System.out.println("ReturnCallback: " + "回应码:" + replyCode);
System.out.println("ReturnCallback: " + "回应信息:" + replyText);
System.out.println("ReturnCallback: " + "交换机:" + exchange);
System.out.println("ReturnCallback: " + "路由键:" + routingKey);
}
});
return rabbitTemplate;
}
}
后面一些代码就不贴出来啦 直接上传到上去 直接下载代码看就好啦
扩着的是整合mq的传送门



