IBM MQ против JMS - реализация Spring

Я работаю над приложением Spring, в котором мы реализовали код для отправки сообщений через IBM MQ.

Теперь нам посоветовали не использовать MQ API напрямую напрямую, а вместо этого использовать JMS.

Шаги, которые я выполнил:

  1. создал имя JNDI для подключения к очереди сообщений, настроенной как:

    <bean id="emailQueueDestination" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true">
            <property name="jndiName" value="<<JNDI name of Queue" >>/>
    </bean>
    
  2. Мне нужен объект фабрики подключения для подключения к поставщику 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>
    

Далее я ввел 2 вышеуказанных bean-компонента в класс JMSTemplate:

<bean id="emailQueueTemplate" class="org.springframework.jms.core.JmsTemplate" lazy-init="true">
        <property name="connectionFactory" ref="emailQueueConnectionFactory" />
        <property name="defaultDestination" ref="emailQueueDestination" />
    </bean>

Поскольку моя цель - удалить зависимость от API-интерфейсов MQ, считаете ли вы, что приведенная выше конфигурация (особенно для фабрики соединений) выглядит хорошо?


person user966506    schedule 30.09.2011    source источник
comment
Итак, в чем именно заключается ваш вопрос? Это хорошо выглядит? это не большой вопрос.   -  person Joachim Sauer    schedule 30.09.2011
comment
Привет ... Мой вопрос заключается в том, делает ли реализация выше мой код независимым от IBM MQ. Если в будущем IBM MQ будет заменена какой-либо другой технологией .. будет ли этот код работать   -  person user966506    schedule 30.09.2011


Ответы (1)


Если ваш код не ссылается ни на один из классов MQ (т. е. ссылается на этот компонент только как на JMS _ 1_ и вы не полагаетесь ни на какие другие нестандартные функции MQ, тогда это должно сделать ваш код разумным легко портировать.

Я бы не стал поспорить, что переход на другой продукт потребует нулевого изменения кода (многие реализации JMS, похоже, имеют некоторые интересные особенности), но вы определенно на правильном пути.

person Joachim Sauer    schedule 30.09.2011
comment
Большое спасибо за мгновенный ответ и помощь - person user966506; 30.09.2011
comment
Привет .. вы бы хотели прописать любую ссылку, в которой говорится о реализации JMS с чем-то другим, кроме MQ ... - person user966506; 30.09.2011