当前位置: 首页 > news >正文

java springboot 集成activeMQ(保姆级别教程)

java springboot 集成activeMQ

1.配置信息

spring: # 配置消息队列activemq:broker-url: tcp://127.0.0.1:61616user: adminpassword: admin

2.ActiveMqConfig 消息队列配置信息


import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.config.SimpleJmsListenerContainerFactory;
import org.springframework.jms.core.JmsMessagingTemplate;import javax.jms.ConnectionFactory;@Configuration
@EnableJms //启动消息队列
public class ActiveMqConfig {@Value("${spring.activemq.broker-url}")private String brokerUrl;@Value("${spring.activemq.user}")private String username;@Value("${spring.activemq.password}")private String password;@Beanpublic ConnectionFactory connectionFactory(){return new ActiveMQConnectionFactory(username, password, brokerUrl);}@Beanpublic JmsMessagingTemplate jmsMessageTemplate(){return new JmsMessagingTemplate(connectionFactory());}// 在Queue模式中,对消息的监听需要对containerFactory进行配置@Bean("queueListener")public JmsListenerContainerFactory<?> queueJmsListenerContainerFactory(ConnectionFactory connectionFactory){SimpleJmsListenerContainerFactory factory = new SimpleJmsListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setPubSubDomain(false);return factory;}}

3.封装发送信息方法

  • 发送信息接口
import javax.jms.Destination;public interface IMQSendMsgService {/*** activeMq发送信息* @param destination* @param message*/public void mqSendMessage(Destination destination, final String message);
}
  • 接口实现
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.activemq.ISendMsgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;import javax.jms.Destination;@Slf4j
@Service
public class MQSendMsgServiceImpl implements IMQSendMsgService {@Autowiredpublic JmsMessagingTemplate jmsMessagingTemplate;@Overridepublic void mqSendMessage(Destination destination, String message) {jmsMessagingTemplate.convertAndSend(destination, message);}
}

4.消息队列在项目中的使用

4.1消息队列发送信息
// 下单后记录商品项列表@Value("${spring.activemq.place-order-record-product-items}")private String placeOrderRecordProductItems;@AutowiredIMQSendMsgService mqSendMsgService;@PostMapping(value = "/send")public String sendMSG(@RequestBody User user){String orderHistoryStr = JSON.toJSONString(user);mqSendMsgService.mqSendMessage(new ActiveMQQueue(placeOrderRecordProductItems), orderHistoryStr);}
4.2消息队列监听获取消费消息
@Slf4j
@Component
public class ActiveMQListenSendMsg {@AutowiredIMQSendMsgService mqSendMsgService;@JmsListener(destination="${spring.activemq.send-msg-after-execute-flow}", containerFactory="queueListener")public void AfterExecuteFlowSendMag(String message){// 业务代码写在这里}
}	    
有不懂的小伙伴欢迎给我留言,看到之后会回复,感谢大家的关注

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++学习笔记——交换值
  • Unity3D UGUI性能消耗和管理详解
  • Redis集群技术
  • CSS3页面布局-三栏-中栏流动布局
  • 基于无人机边沿相关 ------- IBUS、SBUS协议和PPM信号
  • 目标检测:Cascade R-CNN: Delving into High Quality Object Detection - 2017【方法解读】
  • 张宇36讲+1000题重点强化!保100冲120速刷攻略
  • <WPF> xaml代码如何使用c#编写
  • 《一种个性化逻辑定制与类置换方案》
  • Android原生JobSchedulerContext内存泄漏导致设备重启的现象
  • java中位运算在算法中的应用
  • Ubuntu2004编译VLC-QT(记录)(根据官方步骤来)
  • 【ES6新特性】介绍ES6新特性的内容,如var,Let,Const声明变量的区别,解构赋值的概念,字符串的扩展,数组的扩展,以及对象的扩展。
  • 大数据技术之 Flume概述、安装(1)
  • es映射配置(_mapping)
  • @angular/forms 源码解析之双向绑定
  • 《深入 React 技术栈》
  • Android单元测试 - 几个重要问题
  • CEF与代理
  • CSS 专业技巧
  • Elasticsearch 参考指南(升级前重新索引)
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Ruby 2.x 源代码分析:扩展 概述
  • Sass 快速入门教程
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 从零开始学习部署
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 将回调地狱按在地上摩擦的Promise
  • 经典排序算法及其 Java 实现
  • 思否第一天
  • 一个JAVA程序员成长之路分享
  • 应用生命周期终极 DevOps 工具包
  • 用element的upload组件实现多图片上传和压缩
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​力扣解法汇总946-验证栈序列
  • ## 1.3.Git命令
  • ###C语言程序设计-----C语言学习(3)#
  • #define,static,const,三种常量的区别
  • #在 README.md 中生成项目目录结构
  • ( 10 )MySQL中的外键
  • (day 12)JavaScript学习笔记(数组3)
  • (day6) 319. 灯泡开关
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (五)c52学习之旅-静态数码管
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ***测试-HTTP方法
  • .NET CLR基本术语
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Core 中间件与过滤器
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 中让 Task 支持带超时的异步等待