Я работаю над приложением Spring, в котором мы реализовали код для отправки сообщений через IBM MQ.
Теперь нам посоветовали не использовать напрямую API MQ напрямую, а вместо этого использовать 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>
Далее я ввел 2 вышеупомянутых компонента в класс JMSTemplate:
<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, вы думаете, что приведенная выше конфигурация (особенно для фабрики соединений) выглядит хорошо?