微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IBM MQ vs JMS-春季实施

我正在一个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>

>我需要一个connecton工厂对象才能连接到JMS Provider,并且将其配置为:

<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的依赖,您认为上面的配置(尤其是对于连接工厂)看起来不错吗?

最佳答案
如果您的代码未引用任何MQ类(即,它仅以JMS ConnectionFactory的形式引用该bean,并且您不依赖MQ的任何其他非标准功能,则这将使您的代码易于移植) .

我不会打赌切换到另一种产品将需要零代码更改(许多JMS实现似乎具有一些有趣的特性),但是您肯定是正确的方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐