在之前的一篇Blog中(http://herculesx.blogspot.com/2007/12/activemqspring25.html),记述了ActiveMq与Spring2.5的结合使用配置,OpenMq基本上与此类似,但有一点不同,即ConnectionFactory的获取。OpenMq支持两种生成ConnectionFactory实例的方式,一种是JNDI方式查找,相对简单,本文主要介绍第二种方式,即参数配置的方式。
OpenMqConnectionFactory是一个对com.sun.messaging.ConnectionFactory的装饰类,用于Spring的Bean管理,代码如下:
import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.ConnectionFactory;
import javax.jms.Connection;
import javax.jms.JMSException;
public class OpenMqConnectionFactory implements javax.jms.ConnectionFactory{
private ConnectionFactory connectionFactory;
public OpenMqConnectionFactory(String brokerAddress) throws JMSException {
connectionFactory = new ConnectionFactory();
connectionFactory.setProperty(ConnectionConfiguration.imqAddressList, brokerAddress);
}
public Connection createConnection() throws JMSException {
return connectionFactory.createConnection();
}
public Connection createConnection(String userName, String password) throws JMSException {
return connectionFactory.createConnection(userName, password);
}
}
主要是connectionFactory.setProperty(ConnectionConfiguration.imqAddressList, brokerAddress);用来设置远程OpenMq Server的地址和端口,格式为"host1:port,host2:port...",多个主机用逗号隔开。
spring配置文件:
<bean id="jmsFactory" class="com.xued.fxtrader.jms.OpenMqConnectionFactory" >
<constructor-arg type="java.lang.String" value="10.100.1.156:7676" />
</bean>
这样在spring的配置文件中就可以使用OpenMq的ConnectionFactory了。
没有评论:
发表评论