JMS et Spring Framework
Une application Spring Framework peut utiliser la classe JMSTemplate pour envoyer des messages JMS ou recevoir des messages JMS synchrones.
Le JMSTemplate peut localiser les destinations JMS à partir de leur nom JNDI (Java™ Naming and Directory Interface) que vous configurez dans une référence de ressource d'application.
Alternativement, pour la version Spring Framework 2.5 et versions ultérieures, JMSTemplate peut localiser les destinations JMS via une résolution dynamique, qui recherche le nom administratif de la destination configurée dans 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>
<!-- A dynamic resolver -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>
<!-- A JNDI resolver -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.JndiDestinationResolver"/>
Pendant la phase d'exécution, l'objet JMSTemplate peut rechercher une destination sur la base du nom JNDI qui a été configuré dans une référence de ressource d'application. Alternativement, l'objet JMSTemplate peut localiser une destination à l'aide d'une résolution dynamique, basée sur le nom administratif de la destination configurée dans WebSphere Application Server.
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);jmsTemplate.send("myQueue", messageCreator);