创建和使用 Springboot+ActiveMQ 项目

本贴最后更新于 2265 天前,其中的信息可能已经事过景迁

1、 本项目使用 IDEA 工具搭建,项目可以直接导入到 eclipse 中,如果使用 eclipse 创建,请自行百度。
2、 首先新建项目。

image.png

image.png

3、 点击 next

image.png

填写自己想要的信息
4、 点击 next

image.png

选择箭头选择的

5、 点击 next

image.png

6、 点击 finish,等待程序初始化和加载包完成。

image.png

pom文件中添加了对activemq的支持

7、 先创建包,出现如下程序结构

image.png

8、 创建 ActiveMQ 配置类

package com.mbyte.easy.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; import org.springframework.jms.annotation.EnableJms; /** * @program: easy * @description: ActiveMQ配置类 * @author: 王震 * @create: 2019-05-05 11:26 **/ @Configuration @EnableJms public class ActiveMQConfiguration { /** * 定义点对点队列 * @return */ @Bean public Queue queue() { return new ActiveMQQueue("sample.queue"); } /** * 定义一个主题 * @return */ @Bean public Topic topic() { return new ActiveMQTopic("sample.topic"); } }

程序结构如下图所示
image.png

9、 创建生产者和消费者
定义生产者:

package com.mbyte.easy.mq; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.scheduling.annotation.Scheduled; import javax.jms.Queue; import javax.jms.Topic; /** * @program: easy * @description: 定义生产者 * @author: 王震 * @create: 2019-05-05 11:29 **/ @Configuration public class Producer { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; @Autowired private Topic topic; /** * 每5S执行一次 */ @Scheduled(fixedRate = 5000, initialDelay = 3000) public void send() { //发送队列消息 this.jmsMessagingTemplate.convertAndSend(this.queue, "生产者:http://www.byte.ac.cn"); System.out.println("生产者:生产者:http://www.byte.ac.cn"); //发送订阅消息 this.jmsMessagingTemplate.convertAndSend(this.topic, "生产者生产的订阅/发布消息:生产者:http://www.byte.ac.cn"); System.out.println("生产者:生产的订阅/发布消息:http://www.byte.ac.cn"); } }

定义消费者

package com.mbyte.easy.mq; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; /** * @program: easy * @description: 定义消费者 * @author: 王震 * @create: 2019-05-05 11:32 **/ @Component public class Consumer { @JmsListener(destination = "sample.queue") public void receiveQueue(String text) { System.out.println("消费者:来源于生产者的消息:"+text); } @JmsListener(destination = "sample.topic") public void receiveSub1(String text) { System.out.println("消费者:Consumer1="+text); } @JmsListener(destination = "sample.topic") public void receiveSub2(String text) { System.out.println("消费者:Consumer2="+text); } }

最终代码结构如下图所示:

image.png

10、 Springboot 需要开启调度,生产数据,在 Demo1Application 中添加 @EnableScheduling 注解

image.png

11、 现在开始运行程序

image.png

12、 程序正常运行

image.png

13、 Spring boot 默认 P2P 的模式,启用发布订阅模式,可以在 application.properties 中添加 spring.jms.pub-sub-domain=true

image.png

14、 再次运行程序

image.png

发布订阅模式已经启用
15、 将 ActiveMQ 配置成单独的服务,连接 ActiveMQ 服务,可以在可以在 application.properties 中添加

spring.activemq.broker-url=tcp://127.0.0.1:61616 spring.activemq.user=admin spring.activemq.password=admin

image.png

16、 重新启动程序

image.png

17、 程序正常运行,查看 ActiveMQ 管理后台

image.png

已经连接到 ActiveMQ 服务。
18、程序下载

  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 685 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Anytype
    3 引用 • 31 回帖 • 28 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖 • 1 关注
  • OnlyOffice
    4 引用 • 20 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 640 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 88 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    948 引用 • 1460 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 200 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 546 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 642 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 1 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 269 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 9 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 81 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 623 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 319 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖 • 2 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 叶归
    13 引用 • 59 回帖 • 22 关注