ActiveMQ 团结 Spring 收动员静
直接利用 ActiveMQ 的方法需要反复写许多代码,且倒霉于打点,Spring 提供了一种越发轻便的方法————Spring JMS ,通过它可以越发利便地利用 ActiveMQ。
团结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>
<?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">
<!– 配置动静行列的名字 –>
<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 是 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>
<bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!-- 配置动静行列的名字 -->
<constructor-arg value="Queue-zy"/>
</bean>
<bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="Topic-zy"/>
</bean>
<!-- 设置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" />