2008年5月25日星期日

OpenMq与Spring 2.5配置

  在之前的一篇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了。

没有评论: