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" />