JMS 및 Spring Framework

Spring Framework 애플리케이션은 JMSTemplate 클래스를 사용하여 JMS 메시지를 전송하거나 동기 JMS 메시지를 수신할 수 있습니다.

JMSTemplate는 사용자가 애플리케이션 자원 참조에 구성한 JNDI(Java™ Naming and Directory Interface) 이름에서 JMS 대상을 찾을 수 있습니다.

또는 Spring Framework 버전 2.5 이상의 경우 JMSTemplate는 WebSphere® Application Server에 구성된 대상의 관리 이름을 찾는 동적 해결을 통해 JMS 대상을 찾을 수 있습니다.

JMS 자원이 올바르게 관리되는지 확인하기 위해 Spring JndiObjectFactoryBean을 ConnectionFactory의 프록시로 사용할 수 있습니다. 예제:
<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>
다음 예제는 ConnectionFactory의 자원 참조 구성을 보여 줍니다. 애플리케이션 배치 중에 이 자원 참조는 애플리케이션 서버의 JNDI 네임스페이스에 저장되어 있는 구성되고 관리되는 Connection Factory로 맵핑됩니다. ConnectionFactory는 메시징을 수행해야 하며 Spring JMSTemplate 오브젝트에 인젝션되어야 합니다.
<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>
애플리케이션에 ConnectionFactory에 대해 정의된 JNDI 이름이 있으면 해당 JNDI 이름을 찾아서 JMSTemplate에 인젝션할 수 있습니다. 예제:
<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"/>

런타임 시 JMSTemplate 오브젝트는 애플리케이션 자원 참조에 구성된 해당 JNDI 이름을 기반으로 대상을 찾을 수 있습니다. 또는 JMSTemplate 오브젝트는 WebSphere Application Server에 구성된 대상의 관리 이름을 기반으로 동적 해결을 사용하여 대상을 찾을 수도 있습니다.

다음 예제는 jms/myQueue의 JNDI 참조에 바인드되는 JMS 큐 myQueue를 찾기 위해 JNDI 해결을 사용하는 방법을 보여 줍니다.
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
다음 예제는 jms/myQueue의 dynamic 참조에 바인드되는 JMS 큐 myQueue를 찾기 위해 동적 해결을 사용하는 방법을 보여 줍니다.
jmsTemplate.send("myQueue", messageCreator);

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_jms
파일 이름:cspr_data_access_jms.html