天天看點

ActiveMQ

-1.導包

<!-- ActiveMQ的啟動器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>           

-2.配置資訊

@Configuration
public class ActiveMQConfig {

    // 提供生産bean的方法
    @Bean
    public Queue createQueue() {
        return new ActiveMQQueue("bos.queue");
    }

    @Bean
    public Topic createTopic() {
        return new ActiveMQTopic("bos.topic");
    }

}           

-3.使用 --生産者

@Autowired
    private Queue queue;

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;


   public void run(){
      /*  前台擷取資料
             telephone:137****7790
             code:***
       */
        //準備消息
        ActiveMQMapMessage mapMessage = new ActiveMQMapMessage();

        mapMessage.setString("telephone",telephone);
        mapMessage.setString("code",code);
        //發送消息
        jmsMessagingTemplate.convertAndSend(queue,mapMessage);
    }           

-4.消費者 --消費

package com.czxy.sms.consumer;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

import javax.jms.MapMessage;
import javax.jms.Message;

@Component
public class SmsConsumer {

    @JmsListener(destination = "java1.bos.sms")
    public void recive(Message message) {
        try {
            MapMessage mapMessage = (MapMessage) message;
            String telephone = mapMessage.getString("telephone");
            String code = mapMessage.getString("code");
            System.out.println(telephone + ":" + code);
            // 發送短信,調用SMSutil
            // SmsUtil.sendSms(telephone,code);

        } catch (Exception e) {

        }

    }

}