Spring整合ActiveMQ
2017-10-09 20:51
281 查看
ActiveMQ的应用场景:
主要是为了减少系统之间的耦合度,就是说一个流程走完,会触发别的不相关的流程,但是为了减少耦合度,不能在当前的流程中在调用其他不相关的服务,于是activeMQ就可以解决此类问题:
具体配置如下:
1.加入依赖的mq框架:
2.生产者方的配置:
消息生产方发送消息:
3.消息消费方配置
监听器代码:
至此,简单的整合,就完成了
主要是为了减少系统之间的耦合度,就是说一个流程走完,会触发别的不相关的流程,但是为了减少耦合度,不能在当前的流程中在调用其他不相关的服务,于是activeMQ就可以解决此类问题:
具体配置如下:
1.加入依赖的mq框架:
2.生产者方的配置:
1:工厂(原厂商) Apache 提供 2:工厂连接池(原厂商) 3:Spring管理工厂连接池 4:JmsTemplate 连接ActiveMQ jdbcTemplate连接Mysql
<!-- AcitveMQ 配置--> <!-- 工厂 原厂商提供 --> <bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <!-- 设置连接URL --> <property name="brokerURL" <!--配置mq的服务器的地址--> value="tcp://192.168.200.128:61616"/> <!-- 用户名、 --> <property name="userName" value="admin"/> <!-- 密码、 --> <property name="password" value="admin"/> </bean> <!-- 工厂连接池 --> <bean id="pooledConnectionFactoryBean" class="org.apache.activemq.pool.PooledConnectionFactoryBean"> <property name="connectionFactory" ref="activeMQConnectionFactory"/> <!-- 最大 连接数 --> <property name="maxConnections" value="2"/> </bean> <!-- Spring管理起上面的工厂 --> <bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"> <!-- 注入上面的工厂连接池 --> <property name="targetConnectionFactory" ref="pooledConnectionFactoryBean"/> </bean> <!-- JmsTemplate由Spring提供 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory"/> <!-- 默认目标 --> <property name="defaultDestinationName" value="productId"/> </bean>
消息生产方发送消息:
3.消息消费方配置
1:工厂(原厂商) Apache 提供 2:工厂连接池(原厂商) 3:Spring管理工厂连接池 4:监听器 ActiveMQ 是否有消息 如果有接收进来
<!-- AcitveMQ 配置--> <!-- 工厂 原厂商提供 --> <bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <!-- 设置连接URL --> <property name="brokerURL" <!--配置mq的服务器的地址--> value="tcp://192.168.200.128:61616"/> <!-- 用户名、 --> <property name="userName" value="admin"/> <!-- 密码、 --> <property name="password" value="admin"/> </bean> <!-- 工厂连接池 --> <bean id="pooledConnectionFactoryBean" class="org.apache.activemq.pool.PooledConnectionFactoryBean"> <property name="connectionFactory" ref="activeMQConnectionFactory"/> <!-- 最大 连接数 --> <property name="maxConnections" value="2"/> </bean> <!-- Spring管理起上面的工厂 --> <bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"> <!-- 注入上面的工厂连接池 --> <property name="targetConnectionFactory" ref="pooledConnectionFactoryBean"/> </bean> <!-- JmsTemplate由Spring提供 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory"/> <!-- 默认目标 --> <property name="defaultDestinationName" value="productId"/> </bean>
<!--配置监听器-->
<bean id="solrCustomerMessageListener" class="com.chukun.babasport.message.SolrCustomerMessageListener"></bean>
<bean
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"></property>
<!--与生产方配置的相同名称-->
<property name="destinationName" value="productId"></property>
<property name="messageListener" ref="solrCustomerMessageListener"></property>
</bean>
监听器代码:
import org.apache.activemq.command.ActiveMQTextMessage; public class SolrCustomerMessageListener implements MessageListener{ @Override public void onMessage(Message message) { ActiveMQTextMessage amtm = (ActiveMQTextMessage) message; try { System.out.println(amtm.getText()); } catch (JMSException e) { e.printStackTrace(); } } }
至此,简单的整合,就完成了
相关文章推荐
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- Spring和ActiveMQ整合的完整实例
- spring 整合ActiveMQ
- ActiveMQ和spring整合
- spring整合activeMQ
- Spring整合ActiveMQ完成消息队列MQ编程
- Spring整合JMS——基于ActiveMQ实现
- 深入浅出JMS(四)----Spring和ActiveMQ整合的完整实例
- spring整合activemq发送MQ消息[queue模式]实例
- Apache-ActiveMQ整合Spring
- Java消息队列-Spring整合ActiveMq
- Spring整合JMS(一)——基于ActiveMQ实现
- JMS与Spring的整合实例(基于Apache ActiveMQ)JMS的介绍
- Spring整合JMS——基于ActiveMQ实现(一)
- 全java代码实现Spring与ActiveMQ整合
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- ActiveMQ与Spring的整合使用
- Spring JMS 整合 ActiveMQ
- Spring和ActiveMQ整合的完整实例
- ActiveMQ入门教程(五) - ActiveMQ与Spring整合