Spring.xml中的配置:
测试代码:
package com.study;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//@RunWith ---就是一个运行器 SpringJUnit4ClassRunner.class 让测试运行于Spring测试环境,以便在测试开始的时候自动创建Spring的应用上下文
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration ---注解引入配置文件
@ContextConfiguration(locations = "classpath:spring-rabbitmq-producer.xml")
public class ProducerTest2 {
//1.注入RabbitTemplate
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testConfirm(){
//2、定义回调函数
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean b, String s) {
System.out.println("/confirm/i方法被执行了。。。");
if(b){
//接收成功
System.out.println("接收成功"+s);
}else{
//接收失败
System.out.println("接收失败"+s);
}
}
});
//3、发送消息
rabbitTemplate.convertAndSend("spring_exchange_/confirm/i","/confirm/i1","massage /confirm/i...");
}
@Test
public void testReturn(){
//设置交换机处理失败消息的模式
rabbitTemplate.setMandatory(true);
//2.设置ReturnCallBack
rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
@Override
public void returnedMessage(Message message, int i, String s, String s1, String s2) {
System.out.println("ReturnCallback被执行了....");
System.out.println(message);
//处理
}
});
//3、发送消息
rabbitTemplate.convertAndSend("spring_exchange_/confirm/i","/confirm/i1","massage /confirm/i...");
}
}



