【发布时间】:2011-11-28 08:03:41
【问题描述】:
我正在开发一个 Spring 应用程序,我们已经实现了通过 IBM MQ 发送消息的代码。
现在我们被建议不要直接使用 MQ API 而是使用 JMS。
我遵循的步骤:
-
创建了一个 JNDI 名称以连接到配置为的消息队列:
<bean id="emailQueueDestination" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true"> <property name="jndiName" value="<<JNDI name of Queue" >>/> </bean> -
我需要一个连接工厂对象来连接到 JMS 提供程序,我已将其配置为:
<bean id="emailQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory"> <property name="queueManager" value="" /> <property name="hostName" value="" /> <property name="channel" value="" /> <property name="port" value="1414" /> </bean>
此外,我在 JMSTemplate 类中注入了上述 2 个 bean:
<bean id="emailQueueTemplate" class="org.springframework.jms.core.JmsTemplate" lazy-init="true">
<property name="connectionFactory" ref="emailQueueConnectionFactory" />
<property name="defaultDestination" ref="emailQueueDestination" />
</bean>
既然我的目的是消除对 MQ API 的依赖,你认为上面的配置(尤其是连接工厂)看起来不错吗?
【问题讨论】:
-
那么,您的问题到底是什么? “好看吗?”问题不大。
-
嗨..我的问题是上面的实现是否使我的代码独立于 IBM MQ。如果将来 IBM MQ 被任何其他技术取代..此代码是否有效