-
导入activemq启动器
<!-- ActiveMQ的启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
-
application.properties的配置信息
###MQ配置 spring.activemq.broker-url=tcp://127.0.0.1:61616 //# 是否使用内置的MQ, true 使用; fale 不使用 spring.activemq.in-memory=false spring.activemq.password=admin spring.activemq.user=admin
-
导入activemq配置类
package com.czxy.config; import javax.jms.Queue; import javax.jms.Topic; import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.command.ActiveMQTopic; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ActiveMQConfig { @Bean public Queue queue() { return new ActiveMQQueue("czxy.queue"); } @Bean public Topic topic() { return new ActiveMQTopic("czxy.topic"); } }
-
编写生产者
@Componet @EnableScheduling public class QueueProducer { /* * @Autowired // 也可以注入JmsTemplate,JmsMessagingTemplate对JmsTemplate进行了封装 * private JmsMessagingTemplate jmsTemplate; // * 发送消息,destination是发送到的队列,message是待发送的消息 * * @Scheduled(fixedDelay=3000)//每3s执行1次 public void sendMessage(Destination destination, final String message){ jmsTemplate.convertAndSend(destination, message); } */ @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; @Scheduled(fixedDelay=3000)//每3s执行1次 public void send() { try { MapMessage mapMessage = new ActiveMQMapMessage(); mapMessage.setString("info", "你还在睡觉"); this.jmsMessagingTemplate.convertAndSend(this.queue, mapMessage); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
-
编写消费者
@Component public class QueueConsumer { //使用JmsListener配置消费者监听的队列,其中Message是接收到的消息 @JmsListener(destination = "czxy.queue") public void receiveQueue(Message message) { try { MapMessage mapMessage = (MapMessage) message; String info = mapMessage.getString("info"); System.out.println(info); } catch (Exception e) { e.printStackTrace(); } } }
SpringBoot+ActiveMQ
最新推荐文章于 2023-09-11 12:00:00 发布