JMS e o Spring Framework
Um aplicativo Spring Framework pode usar a classe JMSTemplate para enviar mensagens JMS ou receber mensagens JMS síncronas.
O JMSTemplate pode localizar destinos JMS a partir de seu nome Java™ Naming and Directory Interface (JNDI) que você configura em uma referência de recurso do aplicativo.
Alternativamente, o Spring Framework Versão 2.5 e mais recente, o JMSTemplate pode localizar destinos JMS por meio de deliberação dinâmica, que consulta o nome administrativo do destino que está configurado no WebSphere Application Server
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jms/myCF"/>
<property name="lookupOnStartup" value="false"/>
<property name="cache" value="true"/>
<property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>
<resource-ref>
<res-ref-name>jms/myCF</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<jee:jndi-lookup id="jmsConnectionFactory" jndi-name=" jms/myCF "/>
<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="jmsConnectionFactory"/>
</property>
<property name="destinationResolver">
<ref bean="jmsDestResolver"/>
</property>
...
</bean>
<!-- Um resolvedor dinâmico -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>
<!-- Um resolvedor JNDI -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.JndiDestinationResolver"/>
No tempo de execução, o objeto JMSTemplate pode localizar um destino com base em seu nome JNDI que foi configurada em uma referência de recurso do aplicativo. Alternativamente, o objeto JMSTemplate pode localizar um destino usando a resolução dinâmica, com base no nome administrativo do destino configurado no WebSphere Application Server.
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
jmsTemplate.send("myQueue", messageCreator);