activeMQ,spring的jmstemplate简单例子

1.使用的是maven的结构,导入activeMQ的包

[html] view plain copy
  1. <dependency>  
  2.           <groupId>org.apache.activemq</groupId>  
  3.           <artifactId>activemq-core</artifactId>  
  4.           <version>5.5.0</version>  
  5. </dependency>  

 

2.创建“生产者”

①xml配置文件

[html] view plain copy
  1. <!-- 创建工厂连接 -->  
  2.     <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">  
  3.         <property name="brokerURL" value="tcp://localhost:61616" />  
  4.     </bean>  
  5.       
  6.       
  7.     <!-- activeMQ消息目标 队列 -->  
  8.     <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">  
  9.         <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>  
  10.     </bean>  
  11.       
  12.     <!-- activeMQ消息目标 主题-->  
  13.         <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->  
  14.         <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->  
  15.         <!-- </bean>-->  
  16.     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
  17.         <property name="connectionFactory" ref="connectionFactory" />  
  18.     </bean>  
  19.       
  20.     <bean id="marketingGateway" class="com.jms.service.RantzMarketingGatewayImpl">  
  21.         <property name="jmsTemplate" ref="jmsTemplate" />  
  22.         <property name="destination" ref="rantzDestination" />  
  23.     </bean>  


java代码

主类SpringMain

[java] view plain copy
  1. public static void main(String[] args) {  
  2.         /*开始加载spring配置文件*/  
  3.             ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  
  4.             IRantzMarketingGateway rantzMarketingGateway= (RantzMarketingGatewayImpl) context.getBean("marketingGateway");  
  5.             rantzMarketingGateway.sendMotoristInfo();  
  6.             System.out.println("Start ...");  
  7.         }  


消息发送类RantzMarketingGatewayImpl

[java] view plain copy
  1.               import javax.jms.Destination;  
  2. import javax.jms.JMSException;  
  3. import javax.jms.Message;  
  4. import javax.jms.Session;  
  5. import org.springframework.jms.core.JmsTemplate;  
  6. import org.springframework.jms.core.MessageCreator;  
  7. public class RantzMarketingGatewayImpl implements IRantzMarketingGateway {  
  8.       
  9.     private JmsTemplate jmsTemplate;  
  10.     private Destination destination;  
  11.       
  12.     public JmsTemplate getJmsTemplate() {  
  13.         return jmsTemplate;  
  14.     }  
  15.     public void setJmsTemplate(JmsTemplate jmsTemplate) {  
  16.         this.jmsTemplate = jmsTemplate;  
  17.     }  
  18.     public Destination getDestination() {  
  19.         return destination;  
  20.     }  
  21.     public void setDestination(Destination destination) {  
  22.         this.destination = destination;  
  23.     }  
  24.       
  25.     public void sendMotoristInfo(){  
  26.         jmsTemplate.send(  
  27.             destination,  
  28.             new MessageCreator(){  
  29.                 public Message createMessage(Session session) throws JMSException {  
  30.                     return session.createTextMessage("这是一个测试");  
  31.                 }  
  32.             }  
  33.         );  
  34.     }  
  35. }  


 

3.创建“消费者”

①xml配置文件

[html] view plain copy
  1. <!-- 创建工厂连接 -->  
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">  
  3.     <property name="brokerURL" value="tcp://localhost:61616" />  
  4. </bean>  
  5.   
  6. <!-- activeMQ消息目标 队列 -->  
  7. <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">  
  8.     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>  
  9. </bean>  
  10.   
  11. <!-- activeMQ消息目标 主题-->  
  12. <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->  
  13. <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->  
  14. <!-- </bean>-->  
  15. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
  16.     <property name="connectionFactory" ref="connectionFactory" />  
  17.     <property name="defaultDestination" ref="rantzDestination" />  
  18. </bean>  
  19.   
  20. <bean id="marketingGateway" class="com.huateng.jms.service.MarketingReceiverGatewayImpl">  
  21.     <property name="jmsTemplate" ref="jmsTemplate" />  
  22. </bean>  


②java代码

主类SpringMain

[java] view plain copy
  1. public static void main(String[] args) {  
  2.     /*开始加载spring配置文件*/  
  3.         ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  
  4.         MarketingReceiverGatewayImpl rantzMarketingGateway= (MarketingReceiverGatewayImpl) context.getBean("marketingGateway");  
  5.         System.out.println("Receive Start ...");  
  6.         try {  
  7.             rantzMarketingGateway.receiveMotorist();  
  8.         } catch (Exception e) {  
  9.             e.printStackTrace();  
  10.         }  
  11.     }  


消息发送类MarketingReceiverGatewayImpl

[java] view plain copy
  1. import javax.jms.TextMessage;  
  2. import org.springframework.jms.core.JmsTemplate;  
  3. public class MarketingReceiverGatewayImpl {  
  4.       
  5.     private JmsTemplate jmsTemplate;  
  6.       
  7.     public JmsTemplate getJmsTemplate() {  
  8.         return jmsTemplate;  
  9.     }  
  10.     public void setJmsTemplate(JmsTemplate jmsTemplate) {  
  11.         this.jmsTemplate = jmsTemplate;  
  12.     }  
  13.       
  14.     public MarketingReceiverGatewayImpl() {  
  15.     }  
  16.       
  17.     public void receiveMotorist() throws Exception{  
  18.         TextMessage message  = (TextMessage)jmsTemplate.receive();  
  19.         System.out.println("reviced msg is:" + message.getText());  
  20.     }  
  21.       
  22. }  


 

4.启动activeQM

在下载的activeQM包中的bin目录中,可以找到一个用于启动activeMQ的脚本。unix用户使用activemq;windows用户使用activemq.bat

5.先运行"生产者",再运行"消费者"

6.结果

 

Start ...

Receive Start ...

 

reviced msg is:这是一个测试

 


发布了515 篇原创文章 · 获赞 1217 · 访问量 464万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览