spring+activemq配置一个项目同时连接两个activemq服务器

本文介绍了如何在Spring项目中配置连接到两个不同的ActiveMQ服务器,分别用于与数据采集平台和上级平台交互。通过创建`ActiveMQFactory`类,提供获取连接工厂和`JmsTemplate`的方法。在Spring配置文件中声明该类的bean,并在Controller中使用它发送消息。为了接收上级平台的消息,自定义了一个监听器容器,继承`DefaultMessageListenerContainer`,并在其中注入`ActiveMQFactory`以获取连接工厂。最后配置监听器类和监听器容器,实现了项目既能发送又能接收不同ActiveMQ的消息。
摘要由CSDN通过智能技术生成

公司项目中需要与多个平台交互信息,采用activemq。与数据采集平台连接用的是一个activemq,与上级平台连接用的是另一个activemq,也就是要连接到上级平台的activemq。我们的项目是可以同时部署为上级平台或者下级平台,下级平台往上级平台发送报表的时候要发送到上级平台的activemq,下级平台接收数据采集器的数据的时候要发送任务信息到自身的activemq。自身的activemq按照正常的配置,不再细写,参考:https://www.cnblogs.com/jaycekon/p/ActiveMq.html

问题是现在要怎么再配置一个连接池到上级平台的activemq。我的做法是新建一个类,类名随便起了个,就叫ActiveMQFactory,在这个类里面有2个方法,一个获得缓存连接工厂,一个获得JmsTemplate。代码如下:

package com.infinova.oms.activemq;

import javax.jms.ConnectionFactory;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate;

public class ActiveMQFactory {
	
	String username;
	
	String password;
	
	String brokenUrl;
	
	long receiveTimeout;
	
	String destinationName;
	
	boolean pubSubDomain;
	
	private int sessionCacheSize;
	
	private CachingConnectionFactory  connection;
	
	private JmsTemplate jmsTemplate;
	
	public ConnectionFactory getConnection() {
		if(connection == null) {
			connection = new CachingConnectionFactory(new ActiveMQConnectionFactory(username,password,brokenUrl));
			connection.setSessionCacheSize(sessionCacheSize);
		}
		return connection;
	}
	
	public JmsTemplate getJmsTemplate(){
		if(jmsTemplate == null) {
			jmsTemplate = new JmsTemplate(getConnection());
			jmsTemplate.setReceiveTimeout(receiveTimeout);
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值