Spring 之JMS消息推送
<!--Spring配置部分--><!--创建连接工厂--><beanid="connectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory"><propertyname="brokerURL"value="tcp://192.168.1.13:61616"></property></bean><!--声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic--><beanid="destination"class="org.apache.activemq.command.ActiveMQQueue"><constructor-argindex="0"value="TransferIno"></constructor-arg></bean><!--定义模板---><beanid="jmsTemplate"class="org.springframework.jms.core.JmsTemplate"><propertyname="connectionFactory"ref="connectionFactory"></property><propertyname="defaultDestination"ref="destination"></property><propertyname="receiveTimeout"value="600"></property></bean><!--发送--><beanid="sender"class="com.xbkj.springactivemq2.Sender"><propertyname="jmsTemplate"ref="jmsTemplate"></property></bean><!--接受--><beanid="receiver"class="com.xbkj.springactivemq2.Receiver"><propertyname="jmsTemplate"ref="jmsTemplate"></property></bean>//JAVA部分packagecom.xbkj.springactivemq2;importjavax.jms.JMSException;importjavax.jms.Message;importjavax.jms.Session;importjavax.jms.TextMessage;importorg.apache.activemq.ScheduledMessage;importorg.springframework.jms.core.JmsTemplate;importorg.springframework.jms.core.MessageCreator;//发送publicclassSender{privateJmsTemplatejmsTemplate;privateStringinfo;publicJmsTemplategetJmsTemplate(){returnjmsTemplate;}publicvoidsetJmsTemplate(JmsTemplatejmsTemplate){this.jmsTemplate=jmsTemplate;}publicvoidsendInfo(){System.out.println("info:"+info);if(info!=null&&!"".equals(info)){jmsTemplate.send(newMessageCreator(){publicMessagecreateMessage(Sessionsession)throwsJMSException{TextMessagemessage=session.createTextMessage(info);longdelayTime=3000;message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY,delayTime);returnmessage;}});}}publicvoidsetInfo(Stringinfo){this.info=info;}publicStringgetInfo(){returninfo;}}packagecom.xbkj.springactivemq2;importjavax.jms.JMSException;importjavax.jms.TextMessage;importorg.springframework.jms.core.JmsTemplate;importorg.springframework.jms.support.JmsUtils;//接收publicclassReceiver{privateJmsTemplatejmsTemplate;publicJmsTemplategetJmsTemplate(){returnjmsTemplate;}publicvoidsetJmsTemplate(JmsTemplatejmsTemplate){this.jmsTemplate=jmsTemplate;}/***构造函数*/publicReceiver3(){}publicStringreceiveMessage(){Stringmy="";TextMessagemessage=(TextMessage)jmsTemplate.receive();try{my=message.getText();}catch(JMSExceptione){throwJmsUtils.convertJmsAccessException(e);}returnmy;}}//单元测试packagecom.xbkj.service.test;importorg.junit.Before;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcom.xbkj.springactivemq2.Receiver3;importcom.xbkj.springactivemq2.Sender3;publicclassMessageTest{privateApplicationContextcontext;@Beforepublicvoidinit(){context=newClassPathXmlApplicationContext("applicationContext.xml");}@TestpublicvoidtestMessageSender(){Sender3sender3=(Sender3)context.getBean("sender3");intstate=4;if(state==4){sender3.setInfo("test1");sender3.sendInfo();}Receiver3receiver3=(Receiver3)context.getBean("receiver3");System.out.println(receiver3.receiveMessage());}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。