ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Boot与ActiveMQ的集成

2019-07-13 10:51:52  阅读:167  来源: 互联网

标签:Spring Boot springframework 消息 org import ActiveMQ


  Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ、Artemis等。本节中,将以ActiveMQ为例来讲解下Spring Boot与ActiveMQ的集成使用。

  在Spring Boot中,已经内置了对ActiveMQ的支持。要在Spring Boot项目中使用ActiveMQ,只需在pom.xml中添加ActiveMQ的起步依赖即可。

  添加ActiveMQ起步依赖:

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

 

  创建消息队列对象:
  在Application.java中编写一个创建消息队列的方法,其代码如下所示。

/**
 * 创建消息队列的方法
 */
@Bean
public Queue queue() {
    return new ActiveMQQueue("active.queue");
}

 

  创建消息生产者:
  创建一个队列消息的控制器类QueueController,并在类中编写发送消息的方法

package com.xc.springboot.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.jms.Queue;

/**
 * 队列消息的控制器类QueueController
 */
@RestController
public class QueueController {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Queue queue;

    /**
     * 消息生产者
     */
    @RequestMapping("/send")
    public void send() {
        // 指定消息发送的目的地及内容
        jmsMessagingTemplate.convertAndSend(queue, "新发送的消息!");
    }

}

 

  创建消息监听者:
  创建一个客户控制器类CustomerController,并在类中编写监听和读取消息的方法

package com.xc.springboot.controller;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.web.bind.annotation.RestController;

/**
 * 客户控制器
 */
@RestController
public class CustomerController {

    /**
     * 监听和读取消息
     */
    @JmsListener(destination = "active.queue")
    public void readActiveQueue(String message) {
        System.out.println("接收到:" + message);
    }
}

 

  在上述代码中,@JmsListener是Spring 4.1所提供的用于监听JMS消息的注解,该注解的属性destination用于指定要监听的目的地。本案例中监听的是active.queue中的消息。

  启动项目,测试应用:
  启动Spring Boot项目,在浏览器中输入地址http://localhost:8081/send后,控制台将显示所接收到的消息

接收到:新发送的消息!

 

  在实际开发中,ActiveMQ可能是单独部署在其他机器上的,如果要使用它,就需要实现对它的远程调用。要使用远程中的ActiveMQ其实很简单,只需在配置文件中指定ActiveMQ的远程主机地址以及服务端口号,其配置代码如下:

spring.activemq.broker-url=tcp://192.168.2.100:61616

  在上述配置中,192.168.2.100是远程主机的IP地址,61616是ActiveMQ的服务端口号。

标签:Spring,Boot,springframework,消息,org,import,ActiveMQ
来源: https://www.cnblogs.com/ooo0/p/11179747.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有