JMS Apache ActiveMQ使用(3)

来源:互联网 发布:淘宝嘉年华和双11 编辑:程序博客网 时间:2024/05/22 01:47
 
还有工作就是如何接受JMS Message并进行处理了,spring中也有现成的框架进行处理MessageListenerAdapter和DefaultMessageListenerContainer,我们只要写一个普通类编写处理消息的逻辑,具体如何接收消息都由Spring完成。
spring-listener-jms.xml
Xml代码
  1. <?xml version="1.0" encoding="GBK"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"   
  3.         "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  4. <beans>  
  5.     <import resource="spring-jms.xml"/>  
  6.   
  7.     <bean id="messageListener" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">  
  8.         <constructor-arg>  
  9.             <bean class="com.viva.server.message.jms.UserRegisterListener"/>  
  10.         </constructor-arg>  
  11.         <property name="defaultListenerMethod" value="onRegister"/>  
  12.         <property name="messageConverter" ref="messageConvert"/>  
  13.     </bean>  
  14.   
  15.     <bean id="queueListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">  
  16.         <property name="connectionFactory" ref="jmsFactory"/>  
  17.         <property name="destination" ref="queueDestination"/>  
  18.         <property name="messageListener" ref="messageListener"/>  
  19.     </bean>  
  20.   
  21.     <bean id="topicListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">  
  22.         <property name="connectionFactory" ref="jmsFactory"/>  
  23.         <property name="destination" ref="topicDestination"/>  
  24.         <property name="messageListener" ref="messageListener"/>  
  25.     </bean>  
  26.   
  27. </beans>  

从配置文件可以看出配置了一个Topic监听器和Queue监听器,实际的监听类就是一个UserRegisterListener,由它处理用户注册事件。
UserRegisterListener.java代码
Java代码 复制代码 收藏代码
  1. public class UserRegisterListener {   
  2.     public void onRegister(VivaUserRegisterMessage registerMessage){   
  3.         System.out.println("User Register,tel="+ registerMessage.getTel()+ ",time="+registerMessage.getRegisterTime());    
  4.     }   
  5. }  

最后写一个JUnit测试用户来测试一下代码
JMSTestor.java
Java代码 复制代码 收藏代码
  1. public class JMSTestor extends TestCase {   
  2.     private ApplicationContext context;   
  3.   
  4.     public void testQueueSend(){   
  5.         context = new ClassPathXmlApplicationContext("spring-jms.xml");   
  6.         JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("queueTemplate");   
  7.         VivaUserRegisterMessage msg = new VivaUserRegisterMessage();   
  8.         msg.setRegisterTime(new Date());   
  9.         msg.setTel("1385199XXXX");   
  10.         msg.setUserId(1);   
  11.         jmsTemplate.convertAndSend(msg);   
  12.     }   
  13.   
  14.     public void testTopicSend(){   
  15.         context = new ClassPathXmlApplicationContext("spring-jms.xml");   
  16.         JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("topicTemplate");   
  17.         VivaUserRegisterMessage msg = new VivaUserRegisterMessage();   
  18.         msg.setRegisterTime(new Date());   
  19.         msg.setTel("1385199XXXX");   
  20.         msg.setUserId(1);   
  21.         jmsTemplate.convertAndSend(msg);   
  22.     }   
  23.   
  24.     public void testListener()throws Exception{   
  25.         context = new ClassPathXmlApplicationContext("spring-listener-jms.xml");   
  26.         Thread.sleep(1000*60*30);   
  27.     }   
  28.   
  29.        
  30. }  

执行testTopicSend发送JMS Message到Topic
执行testQueueSend发送JMS Message到Queue
执行testListener启动Topic和Queue监听器处理JMS Message
完成!另外ActiveMQ集成了Jetty服务,可以访问地址http://localhost:8161/admin/查看具体信息
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 下围棋太稳了怎么办 苹果5home键失灵怎么办 鱼咸了怎么办怎么补救 工作干不下去了怎么办 长治限行外地车怎么办 低压电工证丢了怎么办 秘讯密语是骗局,怎么办 公司不给小产假怎么办? 吃饭要发票不给怎么办 客厅吊灯买大了怎么办 贝聊等登不上去怎么办 酒店订错了时间怎么办 辞职后奖金不发怎么办 小孩被水母蛰了怎么办 被剧毒水母蛰了怎么办 被水母蛰了很痒怎么办 ipo被否了将来怎么办 科技布沙发裂了怎么办 35岁皮肤皱纹多怎么办 22岁皮肤皱纹多怎么办 腿上皮肤皱纹多怎么办 16岁皮肤有皱纹怎么办 28岁皮肤有皱纹怎么办 眼睛上有血管翳怎么办 鸽子家飞时间短怎么办 宝宝吃母乳不吃奶瓶怎么办 邮件群发超50人怎么办 鸽子拉白色水便怎么办 进京没办进京证怎么办 吃海鲜喝牛奶了怎么办 煎牛排油少了怎么办 网上订酒店去后怎么办 澳洲语言班没过怎么办 照片粘在玻璃上怎么办 照片粘玻璃上怎么办啊 个人3月旅游签证怎么办 澳洲签证拒签了怎么办 我想买房子可是没钱怎么办 微信身份证17位怎么办 身份证后4位泄露怎么办 车牌照掉了一个怎么办