欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: zy_lebron

ActiveMQ 团结 Spring 收动员静

直接利用 ActiveMQ 的方法需要反复写许多代码,且倒霉于打点,Spring 提供了一种越发轻便的方法————Spring JMS ,通过它可以越发利便地利用 ActiveMQ。

Maven 依赖

团结Spring利用ActiveMQ的依赖如下:

<!-- Spring JMS -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>${spring.version}</version>
</dependency>
<!-- xbean 如<amq:connectionFactory /> -->
<dependency>
    <groupId>org.apache.xbean</groupId>
    <artifactId>xbean-spring</artifactId>
    <version>3.16</version>
</dependency>
<!-- ActiiveMQ -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-core</artifactId>
    <version>5.7.0</version>
</dependency>
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-pool</artifactId>
    <version>5.7.0</version>
</dependency>

ActiveMQ.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:amq="http://activemq.apache.org/schema/core"
       xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd


http://activemq.apache.org/schema/core


http://activemq.apache.org/schema/core/activemq-core-5.12.1.xsd">

    <!-- ActiveMQ 毗连工场 -->
    <amq:connectionFactory id="amqConnectionFactory"
                           brokerURL="tcp://localhost:61616"
                           userName="admin"
                           password="admin" />
    <!-- 提高效率,设置JMS毗连工场 -->
    <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <constructor-arg ref="amqConnectionFactory" />
        <property name="sessionCacheSize" value="100" />
    </bean>
    <!-- 界说动静行列(Queue)-->
   <!-- <bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
        &lt;!– 配置动静行列的名字 –&gt;
        <constructor-arg value="Queue-zy"/>
    </bean>-->
    <!--界说主题(Topic)-->
    <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="Topic-zy"/>
    </bean>
    <!-- 设置JMS模板(Queue),Spring提供的JMS东西类,操作它发送、吸收动静。 -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="defaultDestination" ref="topicDestination" />
        <property name="receiveTimeout" value="10000" />
        <!-- true是topic,false是queue,默认是false -->
        <property name="pubSubDomain" value="true" />
    </bean>
    <!-- 设置动静行列监听者(Queue or Topic) -->
    <bean id="messageListener" class="com.service.TopicMessageListener" />
    <!-- 显示注入动静监听容器,昆山软件开发,设置毗连工场,监听的方针是QueueDestination,监听器是上面界说的监听器 -->
    <bean id="ListenerContainer"
          class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="destination" ref="topicDestination" />
        <property name="messageListener" ref="messageListener" />
    </bean>
</beans>
设置 connectionFactory

connectionFactory 是 Spring 用于建设到 JMS 处事器链接的,Spring 提供了多种 connectionFactory。

<!-- ActiveMQ 毗连工场 -->
<amq:connectionFactory id="amqConnectionFactory"
                       brokerURL="tcp://localhost:61616"
                       userName="admin"
                       password="admin" />
<!-- 提高效率,设置JMS毗连工场 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <constructor-arg ref="amqConnectionFactory" />
    <property name="sessionCacheSize" value="100" />
</bean>
设置Queue
<bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
       <!-- 配置动静行列的名字 -->
       <constructor-arg value="Queue-zy"/>
</bean>
设置Topic
<bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="Topic-zy"/>
</bean>
设置JMS动静模板——jmsTemplate
<!-- 设置JMS模板,Spring提供的JMS东西类,操作它发送、吸收动静-->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="defaultDestination" ref="QueueDestination" />
    <!--<property name="defaultDestination" ref="topicDestination" />-->
    <property name="receiveTimeout" value="10000" />
    <property name="pubSubDomain" value="false" /><!-- true是topic,false是queue,默认是false -->
</bean>

最后,在 applicationContext.xml 中引入设置好的 ActiveMQ.xml

<import resource="ActiveMQ.xml" />