撸了今年阿里、网易和美团的面试,我有一个重要发现.......>>>

前言:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

安装activemq的教程百度

1.导入依赖相关的jar包

1.4.0提供了单独的spring-boot-starter-activemq

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

1.4.0之前需要分别导入两个依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId>
</dependency>
<dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-broker</artifactId>
</dependency>

2.配置MQ配置连接

spring.activemq.in-memory=true           //使用内存
spring.activemq.pool.enabled=false       //不需要开启连接池
#JMS config
spring.activemq.broker-url=tcp:// :61616 //mq单独服务地址
spring.activemq.user=                    //用户名
spring.activemq.password=                //密码

注意:如果没有设置mq的单独服务地址默认会将在项目启动时启动一个单独的MQ服务。这个时候需要保证该服务不会重启,如果正在异步通信中关闭MQ会造成所有队列中的消息丢失。

3.开启JMS并配置Queue

   @Beanpublic Queue queue() {return new ActiveMQQueue("sample.queue");//队列的名字}
在主程序启动 @EnableJms

4.创建消息提供者

package com.wangnian;import javax.jms.Queue;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;@Component
public class Producer implements CommandLineRunner {@Autowiredprivate JmsMessagingTemplate jmsMessagingTemplate;@Autowiredprivate Queue queue;@Overridepublic void run(String... args) throws Exception {send("发送消息");}public void send(String msg) {this.jmsMessagingTemplate.convertAndSend(this.queue, msg);}}

demo启动项目执行run方法发送消息

5.创建消息消费者

package com.wangnian;import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;@Component
public class Consumer {@JmsListener(destination = "sample.queue")//这就是配置的bean时候的队列名字public void receiveQueue(String text) {System.out.println(text);}

6.测试

2016-09-04 12:20:01.041  INFO 3436 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 2147483647
发送消息
2016-09-04 12:20:01.728  INFO 3436 --- [           main] com.wangnian.SendJmsApplication          : Started SendJmsApplication in 1.969 seconds (JVM running for 2.309)

7.配置activemq

activemq有一个web网页控台,如果公网访问的话需要设置一下密码。

修改web控台密码

\conf\jetty-realm.properties

# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: newadmin, admin 用户名-密码-权限
user: user, user

修改连接密码

\conf\activemq.xml

在broker标签下  systemUsage标签之前加入plugins

 <!--启动连接密码--><plugins>  <simpleAuthenticationPlugin>  <users>  <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>  </users>  </simpleAuthenticationPlugin>  </plugins>

博客地址:http://my.oschina.net/wangnian

SpringBoot之Jms相关推荐

  1. SpringBoot第二十一篇: springboot集成JMS

    springboot对JMS提供了很好的支持,对其做了起步依赖. 构架工程 创建一个springboot工程,在其pom文件加入: <dependency><groupId>o ...

  2. SpringBoot整合JMS

    SpringBoot整合JMS 文章目录 SpringBoot整合JMS 前言 一.JMS.AMQP概念以及区别 二.ActiveMQ安装 三.SpringBoot整合ActiveMQ:队列模式实例 ...

  3. Springboot 整合 JMS

    ActiveMQ JMS 仅支持 Java 平台. 由于 JMS 是一套标准,所以 SpringBoot 整合 JMS 必然是整合 JMS 的某一个实现. Apache ActiveMQ 是一个开源的 ...

  4. 企业级java b2bc商城系统开源源码二次开发(二十一)springboot集成JMS

    构架工程 创建一个springboot工程,在其pom文件加入: 1 2 3 4 <dependency> <groupId>org.springframework.boot& ...

  5. springboot开启jms服务监控jvm运行情况

    启动命令 nohup java -jar -Djava.rmi.server.hostname=服务所在ip -Dcom.sun.management.jmxremote -Dcom.sun.mana ...

  6. JMS 在 SpringBoot 中的使用

    当前环境 Mac OS 10.11.x docker 1.12.1 JDK 1.8 SpringBoot 1.5 前言 基于之前一篇"一个故事告诉你什么是消息队列",了解了消息队列 ...

  7. SpringBoot开发笔记

    文章目录 SpringBoot开发笔记 1.文件上传 2.同源策略配置 3.Restful请求风格 4.拦截器 5.过滤器.监听器.Servlet 6.AOP切面编程 7.启动系统任务 8.Sprin ...

  8. Zuul上传文件,中文文件名乱码解决办法

    问题描述 在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件,文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题.怀疑网 ...

  9. 栋的月结 | 第二回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]

    开篇词 大家好!以下是我在 2020 年 2 月 1 日至 29 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 一文搞定 Linux 管理员手册:既简单又深刻 官方授 ...

最新文章

  1. 云计算时代,你真的懂 Docker 吗?
  2. 马斯克说到做到!特斯拉牌呼吸机“交货”,用Model 3零部件打造;网友:我滴神啊...
  3. Opengl-基本概念-可编程的渲染管线(僵硬啊)
  4. 金融行业怎么用AI?蚂蚁金服是这么做的
  5. celery 可视化_3-django进阶之celery
  6. 因 inode 不足导致数据库登陆报错相关问题
  7. Python中的文件复制
  8. 液晶显示屏怎么显示泰文_上海工业液晶显示屏厂家
  9. 网页版简书界面优化小建议
  10. ComponentPattern (组合模式)
  11. 浅谈NLP算法工程师的核心竞争力
  12. 三种class反编译工具jad、frontEndPlus、jd-gui 的使用方法
  13. 深井地下水监测测量仪
  14. 11月程序员全国程序员平均工资
  15. oracle不产生特定表的归档,oracle数据库归档与非归档
  16. uniapp 微信小程序获取map地图中心的经纬度地理位置
  17. C++后台开发应该读的书
  18. INT 15h系列介绍
  19. 代码整洁之道 1-3阅读笔记
  20. 如何将mysql导出数据泵_Oracle数据库之ORACLE 数据泵导入导出数据

热门文章

  1. 十六进制转化为十进制 c语言函数
  2. WCDMA无线信号分析原理与实践(四)
  3. 直播平台开发,验证码工具类
  4. 计算机网络的工作原理演示动画,动画演示14种流量计的工作原理
  5. 直播代码Tab导航栏
  6. ASM _asm_hbeatiowait
  7. Unity VR:如何自定义手部显隐
  8. 疯狂坦克 高级教程(二)
  9. C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!
  10. 【Bug】jupyter notebook运行一直显示:kernel starting,please wait(Ubuntu)