springboot+activemq基本使用
阿新 • • 發佈:2018-11-19
-
匯入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(); } } }