Sping整合ActiveMQ(一.ActiveMQ使用javax.jms通信)
1.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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ActiveMQ</groupId> <artifactId>ActiveMQ</artifactId> <version>1.0-SNAPSHOT</version> <name>ActiveMQ</name> <description>ActiveMQ AMQP Java Examples</description> <repositories> <repository> <id>Fusesource Snapshots</id> <url>http://repo.fusesource.com/nexus/content/repositories/snapshots</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jms_1.1_spec</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> <artifactId>qpid-amqp-1-0-client-jms</artifactId> <version>0.24</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.7.0</version> </dependency> </dependencies> <!--<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!– include all the dependencies into the jar so it's easier to execute the example –> <plugin> <groupId>org.fusesource.mvnplugins</groupId> <artifactId>maven-uberize-plugin</artifactId> <version>1.14</version> <executions> <execution> <phase>package</phase> <goals><goal>uberize</goal></goals> </execution> </executions> </plugin> </plugins> </build>--> </project>
2.发送消息测试类Sender:
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class SenderTest { public static void main(String[] args) { //1.创建连接工厂 ConnectionFactory factory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); Connection connection = null; try { //2.通过工厂创建连接 connection = factory.createConnection(); /*启动连接*/ connection.start(); //3.通过连接创建发送或接收消息的会话Session Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //4.通过session创建目的地,即消息发送给谁 Destination destination = session.createQueue("SecondQueue"); //5.通过session创建生产者Product,用于生成消息 MessageProducer producer = session.createProducer(destination); //6.设置不持久化 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); //7.开始发送消息 sendMessage(session, producer); session.commit(); } catch (JMSException e) { e.printStackTrace(); } finally { try { /*关闭连接*/ if (null != connection) connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } public static void sendMessage(Session session, MessageProducer producer) throws JMSException { for(int i = 0; i < 10; i++) { /*创建消息*/ TextMessage message = session.createTextMessage("发送的消息为:" + i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("发送的消息为:" + i); /*开始发送*/ producer.send(message); } } }
3.接收消息测试类Receiver:
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class ReceiverTest { public static void main(String[] args) { //1.创建连接工厂 ConnectionFactory factory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); //2.创建连接 Connection connection = null; try { connection = factory.createConnection(); /*开启连接*/ connection.start(); //3.通过连接创建发送和接收消息的会话Session(支持事务,自动通知) Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //4.通过Session创建消息的目的地 Destination destination = session.createQueue("SecondQueue"); //5.通过Session创建消费者Consumer MessageConsumer consumer = session.createConsumer(destination); //6.开始接收消息 while (true) { /*创建消息对象 用来接收消息*/ TextMessage message = (TextMessage) consumer.receive(); System.out.println(message.getText()); } } catch (JMSException e) { e.printStackTrace(); } finally { /*关闭连接*/ try { if (null != connection) connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } }
相关推荐
同时,通过 `@Valid` 和 `javax.validation` 包中的注解,可以进行数据验证。 7. **Multipurpose Library (Mulit)**: 这个标签可能指的是 Spring MVC 可以与其他库(例如 Mulit 多用途库)无缝集成,以实现更复杂的...
蓝桥杯python 蓝桥杯Python之下班倒计时2.zip
增压转换器和涡轮机的功率为1千瓦。它们适合风速高达12 m/s。涡轮机参考旋转速度150转/分
jspm酒店客房预定管理系统
计算机毕业设计资源大全 精选Java、Python、C++等热门语言项目源码、论文模板及开发工具,助力高效完成毕业设计!涵盖Web开发、人工智能、数据库等多个方向,提供完整文档和视频教程,适合计算机专业学生参考学习。一站式资源库,帮你轻松搞定毕设!
"软件测试资源大全:从入门到精通" 这里汇集了最实用的软件测试学习资源,包括工具、教程、书籍和实战案例,适合新手与进阶者。涵盖功能测试、自动化测试、性能测试等方向,助你快速掌握核心技能,提升测试效率。无论自学还是团队参考,这里都是你的优质指南!
内容概要:本文详细介绍了西门子锂电池项目中1500安全型PLC程序的开发过程及其与多种设备的集成方法。项目涉及雅马哈机器人、视觉系统、库卡机器人和MES通信程序块的对接,采用STL和LAD两种编程语言。文中具体展示了如何通过定义数据结构、构建功能块、处理通信协议等方式实现各设备之间的高效协同工作。此外,还讨论了安全控制、故障排除和性能优化等方面的内容。 适合人群:具备PLC编程基础,从事工业自动化领域的工程师和技术人员。 使用场景及目标:适用于需要理解和掌握PLC编程技巧,特别是在锂电池生产线或其他类似复杂自动化环境中工作的技术人员。目标是提高对PLC编程的理解,增强实际项目开发能力。 其他说明:文章不仅提供了具体的编程实例,还分享了许多实践经验,如如何处理不同设备间的通信协议、优化程序性能以及确保系统的安全性。这对于希望深入了解PLC编程和工业自动化的人来说非常有价值。
电影推荐及数据分析可视化系统 (Flask框架 + Echarts可视化 + 协同过滤算法 + Mysql数据库) 项目视频
CursorUserSetup-x64-0.48.8
内容概要:本文详细介绍了永磁同步电机(PMSM)矢量控制的C代码实现,涵盖从理论到实践的全过程。首先解释了矢量控制的基本原理,即通过坐标变换将三相电流解耦为励磁电流和转矩电流,以便独立控制电机的转矩和磁通。接着介绍了S-function模式仿真的优势,强调它可以灵活嵌入自定义代码并与其他Simulink模块协同工作。文中提供了关键的C代码示例,包括电机参数和状态变量的初始化、Clark变换和Park变换的具体实现、PI控制器的设计以及SVPWM生成算法。此外,还讨论了代码移植到实际工程项目中的注意事项,如硬件资源对接、参数调整和优化技巧。 适合人群:从事电机控制系统开发的技术人员,尤其是有一定C语言编程基础并对永磁同步电机矢量控制感兴趣的工程师。 使用场景及目标:适用于希望深入了解永磁同步电机矢量控制原理并在实际项目中应用相关技术的研发人员。主要目标是帮助读者掌握从仿真到实际应用的完整流程,提高电机控制系统的开发效率和稳定性。 其他说明:文中不仅提供了详细的代码示例,还分享了许多来自实际项目的宝贵经验和技术细节,如定点运算优化、锁相环(PLL)实现中的常见问题及解决方案、PI控制器的抗积分饱和处理等。这些内容对于理解和解决实际开发中的难题非常有帮助。
本文档详细介绍了反推机构(包括阻流门机构和滑动罩机构)的组成及其仿真要求。阻流门机构由非隐藏式连杆组成,滑动罩机构则由12个阻流门机构及其他结构构成。文档具体列出了利用Matlab进行单阻流门位置状态分析、运动轨迹及力与位移关系曲线绘制、干涉情况分析、多组双变量分析及优化判据等仿真任务的要求,并提出进一步可探索的分析内容。同时,对AMESim仿真提出了建立反推机构仿真模型、分析动态响应特性等要求;
本文是基于SDN网络进行的DDoS攻击与防御测试,采用的工具有:Ubuntu 20.04,floodlight,mininet (安装完整版),Sflow-RT,需要用到java,ant ,curl,等等
内容概要:本文详细介绍了利用Matlab实现基于人类视觉系统(HVS)的图像水印嵌入及其在不同攻击条件下的恢复技术。首先,通过DWT分解将水印嵌入到图像的特定频段,确保水印的隐蔽性和鲁棒性。接着,模拟了五种常见的攻击方式(如高斯噪声、裁剪、旋转、JPEG压缩),并展示了如何从受攻击的图像中提取水印。最后,通过PSNR和NC两个指标评估了水印的质量和完整性。实验结果显示,在无攻击情况下PSNR可达40以上,NC接近1;而在不同攻击条件下,NC值有所下降,尤其是旋转攻击对其影响最大。 适合人群:对数字水印技术和图像处理感兴趣的科研人员、学生以及开发者。 使用场景及目标:适用于学术研究和技术开发,旨在探索图像水印的最佳嵌入方法及其应对各类攻击的有效性。目标是提高水印的隐蔽性和抗攻击能力。 其他说明:文中提供了详细的Matlab代码示例,帮助读者更好地理解和实践HVS水印技术。同时指出了一些潜在的问题和改进建议,如旋转攻击后的水印错位问题可以通过模板匹配或校正技术解决。
内容概要:本文详细介绍了五种经典的图像融合技术,分别是IHS融合、PCA融合、PCNN融合、小波变换融合以及RGB加权融合。每种方法都有其独特的实现方式和适用场景。IHS融合将RGB图像转换为IHS空间,利用全色图像的亮度信息增强多光谱图像的细节;PCA融合通过主成分分析将全色图像的第一主成分替换成多光谱图像的对应部分;PCNN融合模拟生物视觉系统,特别适用于医学图像处理;小波变换融合则通过对图像进行多尺度分解,在不同尺度上选择最优细节进行融合;RGB加权融合则是最简单的线性加权方法,适合快速处理。文中提供了每种方法的具体Python代码实现,并讨论了各自的特点和局限性。 适合人群:具有一定编程基础,尤其是对图像处理感兴趣的开发者和技术爱好者。 使用场景及目标:① 遥感图像处理中提高图像分辨率和细节;② 医学图像融合中保持细节和结构;③ 实时视频处理中快速获得融合结果;④ 科研项目中探索不同融合方法的效果。 其他说明:本文强调了各种融合方法的实际应用价值,同时指出没有一种方法是万能的,选择合适的融合方法取决于具体的任务需求。此外,文中提到的代码均为简化版本,实际应用时需要注意边界条件和数据预处理等问题。
内容概要:本文详细介绍了如何通过OPC协议将三菱PLC编程软件GX Works2与组态王集成,实现工业自动化系统的动态仿真。主要内容涵盖前期准备、三菱程序编写基础、与OPC关联的关键设置、OPC服务器配置等方面。文中提供了具体的梯形图和结构化文本代码示例,如电机启停控制、数据寄存器传送、定时器控制等,展示了如何通过合理的寄存器分配和OPC配置使组态王能够实时显示PLC数据,从而提高系统监控与控制的可视化程度。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉三菱PLC和组态王的用户。 使用场景及目标:适用于需要将PLC控制系统与人机界面(HMI)进行无缝集成的场合,旨在实现高效的设备状态监测和控制。通过这种方式,用户可以在组态王界面上直观地查看和操作PLC控制的设备,如电机、传感器等。 其他说明:文章还分享了一些实用的调试技巧和注意事项,如避免数据刷新过快导致OPC通信堵塞、使用心跳信号检测通信状态等。此外,强调了提前规划地址映射表的重要性,以确保数据传输的稳定性和准确性。
内容概要:本文详细介绍了如何利用台达变频器、西门子S7-200型PLC以及昆仑通泰触摸屏构建一套稳定的Modbus通讯控制系统。主要内容涵盖硬件连接方式、关键参数设置、PLC程序编写、触摸屏组态配置及常见问题排查方法。文中提供了详细的代码示例和技术细节,帮助读者快速掌握该系统的搭建与调试技巧。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些负责生产线改造或旧设备升级的专业人士。 使用场景及目标:适用于需要对现有生产设备进行智能化改造的企业,旨在提高生产效率和稳定性。具体应用场景包括但不限于包装线、纺织车间等工业场合。 其他说明:文章强调了参数配置、地址换算、抗干扰措施等方面的重要性,并分享了一些实用的经验和技巧,如避免通讯超时、正确设置终端电阻等。此外,还提供了一些调试工具和方法,便于读者更好地理解和应用所学知识。
内容概要:本文介绍了一种改进的EfficientNet模型,主要增加了ContextAnchorAttention(CAA)模块。该模型首先定义了基础组件,如卷积层、批归一化、激活函数、Squeeze-and-Excitation(SE)模块以及倒残差结构(Inverted Residual)。CAA模块通过选择最具代表性的锚点来增强特征表示,具体步骤包括通道缩减、选择锚点、收集锚点特征、计算查询、键、值,并进行注意力机制的加权融合。EfficientNet的构建基于宽度和深度系数,通过调整每个阶段的卷积核大小、输入输出通道数、扩展比例、步长、是否使用SE模块等参数,实现了不同版本的EfficientNet。最后,模型还包括全局平均池化层和分类器。 适合人群:对深度学习有一定了解并希望深入研究图像分类模型的设计与实现的研究人员或工程师。 使用场景及目标:①理解EfficientNet架构及其改进版本的设计思路;②掌握如何通过引入新的注意力机制(如CAA)来提升模型性能;③学习如何使用PyTorch实现高效的神经网络。 阅读建议:由于本文涉及大量代码实现细节和技术背景知识,建议读者具备一定的深度学习理论基础和PyTorch编程经验。同时,在阅读过程中可以尝试复现代码,以便更好地理解各模块的功能和作用。
该资源为natsort-3.2.0.tar.gz,欢迎下载使用哦!
内容概要:本文详细介绍了4G/GPRS DTU开发板的技术特点及其应用。该开发板采用了STM32F0单片机和SIM800C模块,提供了完整的软硬件设计方案,涵盖电源管理、485接口、AT指令处理等多个方面。硬件设计方面,电源部分具备防反接和TVS保护,支持5-30V宽压输入;485电路带有硬件延时,确保数据传输的稳定性。软件部分则展示了GPIO初始化、AT指令状态机、心跳包机制、MD5加密等关键代码段。此外,开发板还预留了LORA模块扩展接口,增强了灵活性。 适合人群:从事物联网开发的技术人员,尤其是对嵌入式系统和无线通讯感兴趣的开发者。 使用场景及目标:适用于需要稳定可靠的物联网通讯方案的项目,如工业自动化、远程监控等领域。主要目标是帮助开发者理解和掌握DTU开发板的工作原理和技术细节,从而应用于实际产品开发。 其他说明:文中提到的开发板已经在多个实际项目中得到验证,具有良好的稳定性和实用性。尽管PCB文件未公开,但提供的原理图和代码示例足以作为学习和参考的基础。
Fast-Lio系列(2)- Odometry-to-Vision-pose