创建和使用 Springboot+ActiveMQ 项目

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

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 回帖 • 688 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 100 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    173 引用 • 541 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 109 关注
  • 印象笔记
    3 引用 • 16 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 36 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 24 关注
  • Access
    1 引用 • 3 回帖 • 7 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 2 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 52 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 61 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    443 引用 • 1238 回帖 • 601 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 512 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 522 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 563 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    199 引用 • 543 回帖 • 3 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖 • 1 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 391 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 745 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    346 引用 • 761 回帖 • 2 关注
  • TextBundle

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

    1 引用 • 2 回帖 • 83 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 1 关注
  • AWS
    11 引用 • 28 回帖 • 5 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 6 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖 • 1 关注