zoukankan      html  css  js  c++  java
  • spring集成activeMQ

    第一步:添加POM.XML依赖

     1 <properties>
     2        <spring.version>4.2.5.RELEASE</spring.version>
     3     </properties>
     4     <dependencies>
     5         <dependency>
     6             <groupId>junit</groupId>
     7             <artifactId>junit</artifactId>
     8             <version>4.11</version>
     9             <scope>test</scope>
    10         </dependency>
    11 
    12         <dependency>
    13             <groupId>org.springframework</groupId>
    14             <artifactId>spring-context</artifactId>
    15             <version>${spring.version}</version>
    16         </dependency>
    17 
    18         <dependency>
    19             <groupId>org.springframework</groupId>
    20             <artifactId>spring-jms</artifactId>
    21             <version>${spring.version}</version>
    22         </dependency>
    23 
    24         <dependency>
    25             <groupId>org.springframework</groupId>
    26             <artifactId>spring-test</artifactId>
    27             <version>${spring.version}</version>
    28         </dependency>
    29 
    30         <dependency>
    31             <groupId>org.apache.activemq</groupId>
    32             <artifactId>activemq-core</artifactId>
    33             <version>5.7.0</version>
    34             <exclusions>
    35                 <exclusion>
    36                     <artifactId>spring-context</artifactId>
    37                     <groupId>org.springframework</groupId>
    38                 </exclusion>
    39             </exclusions>
    40         </dependency>

    第二步:在resources目录下新建立jmsCommon.xml 文件

     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"
     4        xmlns:context="http://www.springframework.org/schema/context"
     5        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
     6 
     7     <!--开启Spring的注解机制-->
     8     <context:annotation-config></context:annotation-config>
     9 
    10     <!--ActiveMQConnectionFactory为我们提供的ConnectionFactory-->
    11     <bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    12         <property name="brokerURL" value="tcp://192.168.0.106:61616"></property>
    13     </bean>
    14 
    15     <!--Spring jms为我们提供的connectionFactory连接池-->
    16     <bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
    17         <property name="targetConnectionFactory" ref="targetConnectionFactory"></property>
    18     </bean>
    19 
    20     <!--一个队列模式的目的地,点对点的目的-->
    21     <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
    22         <constructor-arg value="queue"></constructor-arg>
    23     </bean>
    24 
    25     <!--一个主题模式的目的地,发布订阅模式-->
    26     <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
    27         <constructor-arg value="topic"></constructor-arg>
    28     </bean>
    29 
    30 
    31 </beans>

    第三步:建立生产者

    1、在resources目录下新建立producer.xml 文件 即生产者配置文件

     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"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
     5 
     6     <!--共用的jms配置信息引入-->
     7     <import resource="jmsCommon.xml"></import>
     8 
     9     <!--配置JmsTemplate,用于发送消息-->
    10     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    11         <property name="connectionFactory" ref="connectionFactory"></property>
    12     </bean>
    13 
    14     <bean class="com.neusoft.jms.producer.ProducerServiceImpl"></bean>
    15 
    16 </beans>

    2、编写接口ProducerService、和接口实现类ProducerServiceImpl

    1 package com.neusoft.jms.producer;
    2 
    3 public interface ProducerService {
    4     void sendMessage(String message);
    5 }
     1 package com.neusoft.jms.producer;
     2 
     3 import org.springframework.beans.factory.annotation.Autowired;
     4 import org.springframework.jms.core.JmsTemplate;
     5 import org.springframework.jms.core.MessageCreator;
     6 
     7 import javax.annotation.Resource;
     8 import javax.jms.*;
     9 
    10 public class ProducerServiceImpl implements ProducerService {
    11 
    12     @Autowired
    13     JmsTemplate jmsTemplate;
    14 
    15     @Resource(name = "topicDestination")
    16     Destination destination;
    17 
    18     public void sendMessage(final String message) {
    19         //使用JmsTemplate发送消息到服务器
    20         jmsTemplate.send(destination, new MessageCreator() {
    21             //创建一个消息
    22             public Message createMessage(Session session) throws JMSException {
    23                 TextMessage textMessage = session.createTextMessage(message);
    24                 return textMessage;
    25             }
    26         });
    27         System.out.println("发送消息:" + message);
    28     }
    29 }

    3、编写消息生产类AppProducer

     1 package com.neusoft.jms.producer;
     2 
     3 import org.springframework.context.support.ClassPathXmlApplicationContext;
     4 
     5 public class AppProducer {
     6 
     7     public static void main(String[] args) {
     8         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("producer.xml");
     9 
    10         ProducerService Service = context.getBean(ProducerService.class);
    11 
    12         for (int i = 0; i < 100 ; i++) {
    13             Service.sendMessage("test 消息发送来了" + i);
    14         }
    15 
    16         context.close();
    17     }
    18 }

    第四步:建立消费者

    1、在resources目录下新建立consumer.xml文件 即消费者配置文件

     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"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     5 
     6     <!--共用的jms配置信息引入-->
     7     <import resource="jmsCommon.xml"></import>
     8 
     9     <!--配置消息监听器-->
    10     <bean id="consumerMessageListener" class="com.neusoft.jms.consumer.ConsumerMessageListener"></bean>
    11 
    12     <!--配置消息容器
    13     1、需要指定消息容器连接的JMS连接池,由Spring提供
    14     2、指定消息容器监听那个位置,什么地方的消息
    15     3、指定自己实现的消息监听器实现类
    16     -->
    17     <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    18         <property name="connectionFactory" ref="connectionFactory"></property>
    19         <property name="destination" ref="topicDestination"></property>
    20         <property name="messageListener" ref="consumerMessageListener"></property>
    21     </bean>
    22 
    23 </beans>

    2、编写消息监听器主类ConsumerMessageListener

     1 package com.neusoft.jms.consumer;
     2 
     3 import javax.jms.JMSException;
     4 import javax.jms.Message;
     5 import javax.jms.MessageListener;
     6 import javax.jms.TextMessage;
     7 
     8 public class ConsumerMessageListener implements MessageListener{
     9 
    10 
    11     public void onMessage(Message message) {
    12 
    13         TextMessage textMessage = (TextMessage) message;
    14 
    15         try {
    16             System.out.println("接收消息:" + textMessage.getText());
    17         } catch (JMSException e) {
    18             e.printStackTrace();
    19         }
    20 
    21     }
    22 }

    3、编写消息处理类,接收执行AppConsumer

     1 package com.neusoft.jms.consumer;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 public class AppConsumer {
     7 
     8     public static void main(String[] args) {
     9         ApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");
    10 
    11     }
    12 }

    写在最后:

    测试集成结果:

    1、先运行AppProducer   消息生产者,

    2、再运行AppConsumer   消息消费者进行结果查看。

  • 相关阅读:
    EP-N8530S USB WIFI 驱动移植
    MySQL(十三)事务处理和字符集
    MySQL(十二)游标和触发器
    《Google软件测试之道》测试工程师
    jmeter(十二)关联之正则表达式提取器
    MySQL(十一)视图及存储过程
    jmeter(十一)JDBC Request之Query Type
    MySQL(十)操纵表及全文本搜索
    MySQL(九)插入、更新和删除
    MySQL(八)子查询和分组查询
  • 原文地址:https://www.cnblogs.com/yinfengjiujian/p/9022147.html
Copyright © 2011-2022 走看看