安装
安装步骤忽略,最后能访问localhost:15672即可
使用
pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
application.properties文件
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/
RabbitmqConfig
RabbitmqConfig主要声明交换机、队列、绑定
@Configuration
public class RabbitmqConfig {
@Autowired
AmqpAdmin amqpAdmin;
@Autowired
RabbitTemplate rabbitTemplate;
@Bean
public void create1(){
//声明一个Direct类型交换机
DirectExchange exchange = new DirectExchange("directExchange1", true, false);
amqpAdmin.declareExchange(exchange);
//声明一个队列
Queue queue = new Queue("queue1", true, false, false);
amqpAdmin.declareQueue(queue);
//将队列和交换机进行绑定
Binding binding = new Binding("queue1", Binding.DestinationType.QUEUE, "directExchange1", "routingkey1", null);
amqpAdmin.declareBinding(binding);
}
}
RabbitMQ监听类
@Service
public class RabbitmqTest1Impl {
@RabbitListener(queues = {"queue1"})
public void getMessage(Message message, Channel channel) throws Exception {
long deliveryTag = message.getMessageProperties().getDeliveryTag();
byte[] body = message.getBody();
MessageProperties messageProperties = message.getMessageProperties();
String s = new String(body);
System.out.println("消费消息:"+s+" deliveryTag="+deliveryTag);
}
}
Controller测试类
@Controller
@RequestMapping("/rabbit")
public class RabbitController {
@Autowired
RabbitTemplate rabbitTemplate;
@RequestMapping("/test1")
@ResponseBody
public String test1() {
Message message = new Message("哈哈哈".getBytes());
rabbitTemplate.send("directExchange1", "routingkey1", message);
return "ok";
}
}