(七)jms activeMQ与spring的集成

 

1、首先引入activeMQ和spring的jar包 ,直接上图

上面的jar包第一个是activeMQ的,还有spring的commos-logging,spring综合包,里面包括了spring-jms,另外还要引入slf4j的两个包  (jar包见管理--文件中的  activeMQ所需jar包 如果不能看的,要么留下联系方式我看到了发给你们,要么网上找也好找 -.-  )

 

2、spring配置文件

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <beans xmlns="http://www.springframework.org/schema/beans"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans  
 7         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
 8         http://www.springframework.org/schema/context  
 9         http://www.springframework.org/schema/context/spring-context-2.5.xsd">
10 
11 
12     <!-- 配置JMS连接工厂 -->
13 
14     <bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
15         <property name="brokerURL" value="tcp://localhost:61616" />
16     </bean>
17 
18     <!-- 配置JMS模版 -->
19     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
20         <property name="connectionFactory" ref="connectionFactory" />
21     </bean>
22 
23     <!-- 发送消息的目的地(一个队列) -->
24     <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
25         <!-- 设置消息队列的名字 -->
26         <constructor-arg index="0" value="activeMQQueue" />
27     </bean>
28 </beans>
复制代码

 

2、java代码   发送者

 

复制代码
 1 package com.pis.activeMQ.test;
 2 
 3 import org.junit.Test;
 4 import org.springframework.context.ApplicationContext;
 5 
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7 
 8 import org.springframework.jms.core.JmsTemplate;
 9 
10 import org.springframework.jms.core.MessageCreator;
11 
12 import javax.jms.Destination;
13 
14 import javax.jms.JMSException;
15 
16 import javax.jms.Message;
17 
18 import javax.jms.Session;
19 
20 public class MessageSender implements MessageCreator{
21     
22     //这里用的是单元测试来写的,执行时需要引入junit4的jar包,如果嫌麻烦,直接改成main方法也行
23     @Test
24     public void send(){
25         ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring/spring-jms.xml");
26     
27         JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
28     
29         Destination destination = (Destination) ctx.getBean("destination");
30     
31         template.send(destination, this);//此处的this是一个MessageCreator的类型,实质上调用的是MessageCreator的createMessage的方法
32         //也可以用内部类来写,会更清晰,就不需要实现MessageCreator
33         
34         /*
35         template.send(destination, new MessageCreator(){
36 
37             @Override
38             public Message createMessage(Session session) throws JMSException {
39                 return session.createTextMessage("sender发送消息!");
40             }
41             
42         });*/
43         System.out.println("发送JMS消息成功");
44     }
45 
46     @Override
47     public Message createMessage(Session session) throws JMSException {
48         
49         return session.createTextMessage("sender发送消息!");
50     }
51     
52     
53     
54     
55 }
复制代码

 

3、java代码   消费者

复制代码
 1 package com.pis.activeMQ.test;
 2 
 3 import org.junit.Test;
 4 import org.springframework.context.ApplicationContext;  
 5 
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;  
 7 
 8 import org.springframework.jms.core.JmsTemplate;  
 9 
10  
11 
12 import javax.jms.Destination;  
13 
14 import javax.jms.JMSException;  
15 
16 import javax.jms.TextMessage; 
17 
18 public class MessageReceiver {
19     
20     
21     //这里用的是单元测试来写的,执行时需要引入junit4的jar包,如果嫌麻烦,直接改成main方法也行
22     @Test
23     public void Receive() throws JMSException {  
24         ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring/spring-jms.xml");  
25         JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
26         Destination destination = (Destination) ctx.getBean("destination");  
27         while (true) {
28             TextMessage msg = (TextMessage) template.receive(destination);
29             if (null != msg)
30                 System.out.println("收到消息内容为: " + msg.getText());
31             else
32                 break;
33 
34         }  
35 }  
36     
37 
38     
39 }
复制代码

 

启动activeMQ服务,连续运行两次发送者,然后再运行一次接受者,可以从http://localhost:8161/admin/queues.jsp去查看消息队列的消息发送接受情况,如下图所示:

 

运行MessageSender 两次

 

查看activeMQ管理界面:可以看到有2条消息

 

运行MessageReceiver,接受两条消息

 

再次查看activeMQ管理界面:可以看到2条消息已经接收

 

OK! 上面就是最简单的activeMQ的配置了,绝对可以跑起来,跑起来的代码才是王道,大家一起学习了!

# 高校智慧校园解决方案摘要 智慧校园解决方案是针对高校信息化建设的核心工程,旨在通过物联网技术实现数字化校园的智能化升级。该方案通过融合计算机技术、网络通信技术、数据库技术和IC卡识别技术,初步实现了校园一卡通系统,进而通过人脸识别技术实现了更精准的校园安全管理、生活管理、教务管理和资源管理。 方案包括多个管理系统:智慧校园管理平台、一卡通卡务管理系统、一卡通人脸库管理平台、智能人脸识别消费管理系统、疫情防控管理系统、人脸识别无感识别管理系统、会议签到管理系统、人脸识别通道管理系统和图书馆对接管理系统。这些系统共同构成了智慧校园的信息化基础,通过统一数据库和操作平台,实现了数据共享和信息一致性。 智能人脸识别消费管理系统通过人脸识别终端,在无需接触的情况下快速完成消费支付过程,提升了校园服务效率。疫情防控管理系统利用热成像测温技术、视频智能分析等手段,实现了对校园人员体温监测和疫情信息实时上报,提高了校园公共卫生事件的预防和控制能力。 会议签到管理系统和人脸识别通道管理系统均基于人脸识别技术,实现了会议的快速签到和图书馆等场所的高效通行管理。与图书馆对接管理系统实现了一卡通系统与图书馆管理系统的无缝集成,提升了图书借阅的便捷性。 总体而言,该智慧校园解决方案通过集成的信息化管理系统,提升了校园管理的智能化水平,优化了校园生活体验,增强了校园安全,并提高了教学和科研的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值