activeMQ,spring的jmstemplate简单例子

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

  1. <dependency> 
  2.           <groupId>org.apache.activemq</groupId> 
  3.           <artifactId>activemq-core</artifactId> 
  4.           <version>5.5.0</version> 
  5. </dependency> 

2.创建“生产者”

①xml配置文件

  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

  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

  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.     } 

3.创建“消费者”

①xml配置文件

    

  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

  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

  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.      

4.启动activeQM

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

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

6.结果

Start ...

Receive Start ...

reviced msg is:这是一个测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值