zoukankan      html  css  js  c++  java
  • ActiveMQ与Spring整合

    与Spring整合开发的话,非常方便。

    1. pom.xml

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    3.     <modelVersion>4.0.0</modelVersion>  
    4.   
    5.     <groupId>org.ygy</groupId>  
    6.     <artifactId>activemq</artifactId>  
    7.     <version>0.0.1-SNAPSHOT</version>  
    8.     <packaging>jar</packaging>  
    9.   
    10.     <name>activemq</name>  
    11.     <url>http://maven.apache.org</url>  
    12.   
    13.     <properties>  
    14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    15.         <spring.version>3.1.1.RELEASE</spring.version>  
    16.     </properties>  
    17.   
    18.     <dependencies>  
    19.         <dependency>  
    20.             <groupId>junit</groupId>  
    21.             <artifactId>junit</artifactId>  
    22.             <version>4.10</version>  
    23.             <scope>test</scope>  
    24.         </dependency>  
    25.   
    26.         <!-- activemq,学习中 -->  
    27.         <dependency>  
    28.             <groupId>org.apache.activemq</groupId>  
    29.             <artifactId>activemq-core</artifactId>  
    30.             <version>5.7.0</version>  
    31.         </dependency>  
    32.   
    33.         <dependency>  
    34.             <groupId>org.slf4j</groupId>  
    35.             <artifactId>slf4j-api</artifactId>  
    36.             <version>1.5.6</version>  
    37.         </dependency>  
    38.   
    39.         <dependency>  
    40.             <groupId>org.slf4j</groupId>  
    41.             <artifactId>slf4j-log4j12</artifactId>  
    42.             <version>1.5.6</version>  
    43.         </dependency>  
    44.   
    45.         <!-- 与Spring集成 -->  
    46.         <dependency>  
    47.             <groupId>org.springframework</groupId>  
    48.             <artifactId>spring-context</artifactId>  
    49.             <version>${spring.version}</version>  
    50.         </dependency>  
    51.         <dependency>  
    52.             <groupId>org.springframework</groupId>  
    53.             <artifactId>spring-jms</artifactId>  
    54.             <version>${spring.version}</version>  
    55.         </dependency>  
    56.   
    57.         <dependency>  
    58.             <groupId>org.apache.activemq</groupId>  
    59.             <artifactId>activemq-spring</artifactId>  
    60.             <version>5.8.0</version>  
    61.         </dependency>  
    62.   
    63.     </dependencies>  
    64. </project>  

    2. 生产者

    1. package org.ygy.mq.lesson03;  
    2.   
    3. import javax.jms.JMSException;  
    4. import javax.jms.Message;  
    5. import javax.jms.Session;  
    6.   
    7. import org.springframework.jms.core.JmsTemplate;  
    8. import org.springframework.jms.core.MessageCreator;  
    9.   
    10. /** 
    11.  *  
    12.  * @author yuguiyang 
    13.  * 
    14.  */  
    15. public class SpringProducer {  
    16.       
    17.     //Spring的模板,封装了很多功能  
    18.     private JmsTemplate jmsTemplate;  
    19.       
    20.     public void setJmsTemplate(JmsTemplate jmsTemplate) {  
    21.         this.jmsTemplate = jmsTemplate;  
    22.     }  
    23.       
    24.       
    25.     public void send() {  
    26.         //使用JMSTemplate可以很简单的实现发送消息  
    27.         jmsTemplate.send(new MessageCreator() {  
    28.             public Message createMessage(Session session) throws JMSException {  
    29.                 return session.createTextMessage("地瓜!地瓜!");  
    30.             }  
    31.         });  
    32.     }  
    33.   
    34. }  



    3. 消费者

    1. package org.ygy.mq.lesson03;  
    2.   
    3. import javax.jms.TextMessage;  
    4.   
    5. import org.springframework.jms.core.JmsTemplate;  
    6.   
    7. /** 
    8.  *  
    9.  * @author yuguiyang 
    10.  * @description 消费者 
    11.  * @time 2013-10-14 
    12.  * @version V1.0 
    13.  */  
    14. public class SpringConsumer {  
    15.     private JmsTemplate jmsTemplate;  
    16.   
    17.     public void setJmsTemplate(JmsTemplate jmsTemplate) {  
    18.         this.jmsTemplate = jmsTemplate;  
    19.     }  
    20.   
    21.     //接收消息  
    22.     public void recive() {  
    23.         while (true) {  
    24.             try {  
    25.                 //使用JMSTemplate接收消息  
    26.                 TextMessage txtmsg = (TextMessage) jmsTemplate.receive();  
    27.                 if (null != txtmsg) {  
    28.                     System.out.println("--- 收到消息内容为: " + txtmsg.getText());  
    29.                 } else {  
    30.                     break;  
    31.                 }  
    32.             } catch (Exception e) {  
    33.                 e.printStackTrace();  
    34.             }  
    35.   
    36.         }  
    37.     }  
    38.   
    39. }  



    4. 配置文件

    其他的代码基本上就是Spring的配置文件了

     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
    4.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
    5.         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
    6.         http://www.springframework.org/schema/context   
    7.         http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
    8.   
    9.   
    10.     <!-- 1.配置connectionFactory -->  
    11.     <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">  
    12.         <property name="connectionFactory">  
    13.             <bean class="org.apache.activemq.ActiveMQConnectionFactory">  
    14.                 <property name="brokerURL">  
    15.                     <value>tcp://127.0.0.1:61616</value>  
    16.                 </property>  
    17.             </bean>  
    18.         </property>  
    19.         <property name="maxConnections" value="100"></property>  
    20.     </bean>  
    21.       
    22.     <!-- 2.定义消息目标 -->  
    23.     <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">  
    24.         <constructor-arg index="0" value="queue_temp"></constructor-arg>  
    25.     </bean>  
    26.       
    27.   
    28.     <!-- 3.配置Spring JMS Template -->  
    29.     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
    30.         <!-- 3.1 注入jmsFactory -->  
    31.         <property name="connectionFactory" ref="jmsFactory"></property>  
    32.           
    33.         <!-- 3.2 配置消息目标 -->  
    34.         <property name="defaultDestination" ref="destination" />  
    35.     </bean>  
    36.       
    37.     <!-- 4.配置生产者 -->  
    38.     <bean id="springProducer" class="org.ygy.mq.lesson03.SpringProducer">  
    39.         <property name="jmsTemplate" ref="jmsTemplate"/>  
    40.     </bean>  
    41.   
    42.     <!-- 5.配置消费者 -->  
    43.     <bean id="springConsumer" class="org.ygy.mq.lesson03.SpringConsumer">  
    44.         <property name="jmsTemplate" ref="jmsTemplate"></property>  
    45.     </bean>  
    46.   
    47. </beans>  

    5. 测试 

      1. package org.ygy.mq.lesson03;  
      2.   
      3. import org.springframework.context.ApplicationContext;  
      4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
      5.   
      6. /** 
      7.  * ActiveMQ与Spring整合 ===初步整合 
      8.  * 1.消费者 
      9.  * 2.生产者 
      10.  * 3.配置文件 
      11.  *  
      12.  * @author Administrator 
      13.  * 
      14.  */  
      15. public class JMSTest {  
      16.   
      17.     public static void main(String[] args) {  
      18.         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-jms.xml");  
      19.           
      20.         SpringProducer producer = (SpringProducer)applicationContext.getBean("springProducer");  
      21.         producer.send();  
      22.           
      23.         SpringConsumer consumer = (SpringConsumer) applicationContext.getBean("springConsumer");  
      24.         consumer.recive();  
      25.           
      26.     }  
      27.   
      28. }  
  • 相关阅读:
    三次请求(读-改-读)引出nibernate 一级缓存
    算法竞赛入门经典第一、二章摘记
    uva 10905 Children's Game
    uva 11205 The broken pedometer
    uva 10160 Servicing stations
    uva 208 Firetruck
    uva 167 The Sultan's Successors
    zoj 1016 Parencodings
    uva 307 Sticks
    uva 216 Getting in Line
  • 原文地址:https://www.cnblogs.com/wangshouchang/p/8474102.html
Copyright © 2011-2022 走看看