springBoot(21):集成ActiveMQ

1、添加依賴java

<!-- jms-activemq -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

2、配置application.propertiesspring

#########################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結束#########################

3、代碼實現apache

注意:application啓動類須要加上註解@EnableJms
app

3.一、activemq配置
tcp

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.二、消息的發送與監聽ide

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);
    }
}

4、測試spring-boot

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方法:測試

 wKiom1lcdWjiB_ZpAACp3Ma8hPw399.jpg

運行send2方法:fetch

 wKioL1lcddqRuDsBAADWAcjjc2o464.png


activemq控制檯:this

 wKiom1lcdgmDGX8CAAEXgc-_Q-A123.jpg

相關文章
相關標籤/搜索