添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
添加配置文件
#消息队列 spring: rabbitmq: host: 10.211.55.13 port: 5672 virtual-host: /dev password: password username: admin
新建RabbitMQConfig文件类
@Configuration public class RabbitMQConfig { public static final String EXCHANGE_NAME = "order_exchange"; public static final String QUEUE_NAME = "order_queue"; /** * 交换机 * @return */ @Bean public Exchange orderExchange() { return ExchangeBuilder.topicExchange(EXCHANGE_NAME).durable(true).build(); //return new TopicExchange(EXCHANGE_NAME, true, false); } /** * 队列 * @return */ @Bean public Queue orderQueue() { return QueueBuilder.durable(QUEUE_NAME).build(); //return new Queue(QUEUE_NAME, true, false, false, null); } /** * 交换机和队列绑定关系 */ @Bean public Binding orderBinding(Queue queue, Exchange exchange) { return BindingBuilder.bind(queue).to(exchange).with("order.#").noargs(); //return new Binding(QUEUE_NAME, Binding.DestinationType.QUEUE, EXCHANGE_NAME, "order.#", null); } }
发送消息
@Test public void test4() { template.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"order.new","新订单"); }
搞一个OrderMQListener类 这里可能导包错误,所以我直接把全包附上!
import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import java.io.IOException; @Component @RabbitListener(queues = "order_queue") public class OrderMQListener { /** * RabbitHandler 会自动匹配 消息类型(消息自动确认) * @param msg * @param message * @throws IOException */ @RabbitHandler public void releaseCouponRecord(String msg, Message message) throws IOException { long msgTag = message.getMessageProperties().getDeliveryTag(); System.out.println("msgTag="+msgTag); System.out.println("message="+message.toString()); System.out.println("监听到消息:消息内容:"+message.getBody().toString()); } }
本文作者为DBC,转载请注明。