ActiveMQ 03 整合SpringBoot

Active MQ 03

整合SpringBoot

配置文件

POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.3.BUILD-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mashibing.arika</groupId><artifactId>mq</artifactId><version>0.0.1-SNAPSHOT</version><name>mq</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-activemq</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.messaginghub</groupId><artifactId>pooled-jms</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url></pluginRepository><pluginRepository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></project>
yml
server:port: 80spring:activemq:broker-url: tcp://localhost:61616user: adminpassword: adminpool:enabled: true#连接池最大连接数max-connections: 5#空闲的连接过期时间,默认为30秒idle-timeout: 0packages:trust-all: truejms:pub-sub-domain: true
Config类

用于生产ConnectionFactory

package com.mashibing.arika;import javax.jms.ConnectionFactory;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;@Configuration
@EnableJms
public class ActiveMqConfig {@Beanpublic JmsListenerContainerFactory<?> jmsListenerContainerTopic(ConnectionFactory activeMQConnectionFactory) {DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();bean.setPubSubDomain(true);bean.setConnectionFactory(activeMQConnectionFactory);return bean;}// queue模式的ListenerContainer@Beanpublic JmsListenerContainerFactory<?> jmsListenerContainerQueue(ConnectionFactory activeMQConnectionFactory) {DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();bean.setConnectionFactory(activeMQConnectionFactory);return bean;}
}
@JmsListener(destination = "user",containerFactory = "jmsListenerContainerQueue")public void receiveStringQueue(String msg) {System.out.println("接收到消息...." + msg);}@JmsListener(destination = "ooo",containerFactory = "jmsListenerContainerTopic")public void receiveStringTopic(String msg) {System.out.println("接收到消息...." + msg);}
package com.mashibing.arika;import java.util.ArrayList;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;@Service
public class MqProducerService {@Autowiredprivate JmsMessagingTemplate jmsMessagingTemplate;public void sendStringQueue(String destination, String msg) {System.out.println("send...");ActiveMQQueue queue = new ActiveMQQueue(destination);jmsMessagingTemplate.afterPropertiesSet();ConnectionFactory factory = jmsMessagingTemplate.getConnectionFactory();try {Connection connection = factory.createConnection();connection.start();Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);Queue queue2 = session.createQueue(destination);MessageProducer producer = session.createProducer(queue2);TextMessage message = session.createTextMessage("hahaha");producer.send(message);} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}jmsMessagingTemplate.convertAndSend(queue, msg);}public void sendStringQueueList(String destination, String msg) {System.out.println("xxooq");ArrayList<String> list = new ArrayList<>();list.add("1");list.add("2");jmsMessagingTemplate.convertAndSend(new ActiveMQQueue(destination), list);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红色文化展馆3D线上互动展览推动党建创新发展

实现现代化是世界各国人民的共同追求。在追求现代化的艰苦卓绝奋斗中&#xff0c;我们党领导人民不仅创造了世所罕见的经济快速发展和社会长期稳定两大奇迹&#xff0c;而且成功走出了中国式现代化道路&#xff0c;创造了人类文明新形态。对党建学习也应该与时俱进&#xff0c;…

c语言多功能计算软件170

定制魏&#xff1a;QTWZPW&#xff0c;获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件&#xff0c;具备如下功能提示界面。 要求 设计出界面&#xff0c;注意界面名称最后为自己的姓名&#xff1b;&#xff08;20分&#xff09;能够实现加、减、乘、…

Vector部分底层源码解析

JDK版本为1.8.0_271&#xff0c;Vector底层也是使用object数组&#xff0c;但使用synchronized 关键字来确保线程安全&#xff0c;但效率比ArrayList低&#xff0c;比较少见。这里以插入删除元素为例&#xff1a; //属性 protected Object[] elementData; protected int eleme…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…

idea 使用springboot helper 创建springboot项目

Spring Boot Helper 是一个在 IntelliJ IDEA 中用于快速创建 Spring Boot 项目的插件。通过这个插件&#xff0c;开发者可以简化 Spring Boot 项目的创建过程&#xff0c;并快速生成所需的依赖和配置文件。以下是使用 Spring Boot Helper 插件创建 Spring Boot 项目的详细步骤&…

Docker搭建Dillinger

Dillinger是一款功能强大的在线Markdown编辑器&#xff0c;它支持实时预览、导出至各种格式、多种主题等功能。通过Docker&#xff0c;我们可以轻松地部署和运行Dillinger&#xff0c;从而实现在线Markdown编辑与预览。本教程将分别介绍使用Docker CLI和Docker Compose两种不同…

QT windeployqt打包出现无法正常启动问题

QT 通过windeployqt 打包后出现的问题 原因QT构建选择的是64位的 但是windows下运行的却是32位的 步骤打开32的所在路径 一般在上一级目录会有安装好的64位的MSVC工具 运行打包即可

《乱弹篇(27)回乡祭扫感慨多》

人老了&#xff0c;真的就要记住“好汉不提当年勇&#xff0c;梅花不提前世绣”这话。 忆往昔&#xff0c;中青年时代的笔者精力旺盛&#xff0c;也曾只身一人闯荡江湖&#xff0c;把自己的足迹印到过大半个中国土地上&#xff0c;可如今岁近耄耋残年&#xff0c;清明节想回一…

Python | Leetcode Python题解之第19题删除链表的倒数第N个结点

题目&#xff1a; 题解&#xff1a; class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:dummy ListNode(0, head)first headsecond dummyfor i in range(n):first first.nextwhile first:first first.nextsecond second.nextsecond.ne…

gemini1.5 API调用

https://ai.google.dev/pricing?hlzh-cn 查询可用的model https://generativelanguage.googleapis.com/v1beta/models?keyxxx 使用postman调用 https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?keyxxx https://ai.google…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合&#xff0c;今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表&#xff0c;JDK1.7还有人在用&#xff1f;不会吧…… 说一下JDK1.8的数据结构吧&#xff1a; JDK1.8的数据结构是数组链表红黑树。 数据结…

重发布和路由策略

重发布&#xff08;重分布/重分发&#xff09;&#xff1a; 当一个网络内&#xff0c;存在多种路由协议时&#xff0c;或同一协议多个进程时&#xff1b;每种协议或进程&#xff0c;均独立运行&#xff0c;不共享数据&#xff1b;只能通过重发布技术实现全网可达&#xff1b; …

Vue pdfjs

最终效果图 官网 https://mozilla.github.io/pdf.js 下载 放入项目 vue页面嵌入本地下载好的html sessionStorage.setItem(sdfDldj8KJ45SDF, encodeURIComponent(file_url)) <template><div style"height:100%"><iframe:id"1":key"…

阿里云服务器租用费用,这价格可以呀!

2024阿里云服务器租用优惠价格4月最新报价&#xff0c;阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M服务器108元一年、香港30M带宽轻量服务器24元1个月、云服务器4核16G10M带宽30元1个月、90元3个月&#xff0c;云…

【数据分享】中国首套1米分辨率土地覆盖数据(2023年发布)

土地覆盖数据是我们在各项研究中都非常常用的数据&#xff01;本次我们整理的是全国各城市的1米分辨率的土地覆盖数据&#xff01; 武汉大学李卓鸿、何伟等研究者基于深度学习框架和开放数据&#xff0c;具体包括全球土地覆盖&#xff08;GLC&#xff09;数据、OSM地图数据、谷…

每日两题 / 3. 无重复字符的最长子串 84. 柱状图中最大的矩形(LeetCode热题100)

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 双指针&#xff0c;l和r从字符串最左边开始&#xff0c;保存l和r之间的所有字符 移动r&#xff0c;若新加入的字符和已有字符重复&#xff0c;则不断移动l&#xff0c;直到l和r之间不出现重复字符 注意&#…

【机器学习】深入剖析贝叶斯算法原理及其广泛应用

一、引言 在机器学习的广阔领域中&#xff0c;贝叶斯算法以其独特的概率推理方式占据了重要的地位。它不仅为分类问题提供了有效的解决方案&#xff0c;还在自然语言处理、信息检索、垃圾邮件过滤等诸多领域发挥着不可替代的作用。 贝叶斯算法的基本思想源于贝叶斯定理&#xf…

数据结构学习之路--实现带头双向循环链表的详解(附C源码)

嗨嗨大家~本期带来的内容是&#xff1a;带头双向循环链表的实现。在上期文章中我们提到过带头双向循环链表&#xff0c;那么它的实现又是怎样的呢&#xff1f;今天我们来一探究竟&#xff01; 目录 前言 一、认识带头双向循环链表 1 认识双向链表 2 带头双向循环链表的定…

Oracle获取对象的DDL创建语句

1.命令行方式&#xff08;如&#xff1a;sqlplus&#xff09; ## 用户 select dbms_metadata.get_ddl(USER,TEST) from dual;## 表 select dbms_metadata.get_ddl(TABLE,TEST,T1) from dual;## 表空间 select dbms_metadata.get_ddl(TABLESPACE,TBS_NAME) from dual;## 索引 s…

【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具

作品展示&#xff1a; 背景需求&#xff1a; 前文遍历四个文件夹&#xff0c;分别将每个文件夹内的10个图片的左上角加入星号&#xff0c;显示难度系数 【教学类-50-05】20240410“数一数”4类图片添加“难度星号”-CSDN博客文章浏览阅读55次&#xff0c;点赞2次&#xff0c;…