-
導入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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.