一、添加依赖



   org.springframework.boot
   spring-boot-starter-activemq

二、配置application.properties

#########################activemq开始#########################
spring.activemq.in-memory=true
spring.activemq.broker-url=failover:(tcp://192.168.175.13:61616)?jms.prefetchPolicy.all=100&jms.redeliveryPolicy.maximumRedeliveries=0
spring.activemq.user=liuy
spring.activemq.password=123456
#spring.activemq.packages.trust-all=false
#spring.activemq.packages.trusted=
#spring.activemq.pool.configuration.*=
#spring.activemq.pool.enabled=false
#spring.activemq.pool.expiry-timeout=0
#spring.activemq.pool.idle-timeout=30000
#spring.activemq.pool.max-connections=1
#########################activemq结束#########################

三、代码实现

注意:application启动类需要加上注解@EnableJms

3.1、activemq配置

package com.example.demo.config;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.jms.Queue;

/**
 * ActiveMQ配置
 *
 * @Author: 我爱大金子
 * @Description: ActiveMQ配置
 * @Date: Create in 12:37 2017/7/5
 */
@Configuration
public class ActivemqConfiguration {
    @Bean
    public Queue queue1() {
        return new ActiveMQQueue("liuy.test.queue1");
    }

    @Bean
    public Queue queue2() {
        return new ActiveMQQueue("liuy.test.queue2");
    }
}

3.2、消息的发送与监听

package com.example.demo.utils.component;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;

import javax.jms.Queue;

/**
 * 消息的发送与监听
 *
 * @Author: 我爱大金子
 * @Description: 消息的发送与监听
 * @Date: Create in 12:39 2017/7/5
 */
@Component
public class ActivemqComponent {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Queue queue1;
    @Autowired
    private Queue queue2;

    /**
     * 发送消息
     * @Author: 我爱大金子
     * @Description: 发送消息
     * @Date: 12:41 2017/7/5
     * @param msg 消息内容
     */
    public void send1(String msg) {
        this.jmsMessagingTemplate.convertAndSend(this.queue1, msg);
    }

    /**
     * 发送消息
     * @Author: 我爱大金子
     * @Description: 发送消息
     * @Date: 12:41 2017/7/5
     * @param msg 消息内容
     */
    public void send2(String msg) {
        this.jmsMessagingTemplate.convertAndSend(this.queue2, msg);
    }

    /**
     * 监听liuy.queued队列
     * @Author: 我爱大金子
     * @Description: 监听lliuy.test.queue1队列
     * @Date: 12:42 2017/7/5
     * @param text
     */
    @JmsListener(destination = "liuy.test.queue1")
    public void receiveQueue(String text) {
        System.out.println("接受到liuy.test.queue1:" + text);
    }

    /**
     * 监听liuy.queued队列
     * @Author: 我爱大金子
     * @Description: 监听lliuy.test.queue1队列
     * @Date: 12:42 2017/7/5
     * @param text
     */
    @JmsListener(destination = "liuy.test.queue2")
    public void receiveQueue2(String text) {
        System.out.println("接受到liuy.test.queue2:" + text);
    }
}

四、测试

package com.example.demo;

import com.example.demo.utils.component.ActivemqComponent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootActivemqApplicationTests {

   @Autowired
   private ActivemqComponent activemqComponent;

   @Test
   public void send1() {
      activemqComponent.send1("activemq消息测试1");
   }

   @Test
   public void send2() {
      activemqComponent.send2("activemq消息测试2");
   }
}


运行send1方法:

 springBoot(21):集成ActiveMQ_第1张图片

运行send2方法:

 springBoot(21):集成ActiveMQ_第2张图片


activemq控制台:

 springBoot(21):集成ActiveMQ_第3张图片