Loading...
Spring Framework Reference Documentation 7.0.2의 Support for JCA Message Endpoints의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Beginning with version 2.5, Spring also provides support for a JCA-based
MessageListener 컨테이너. The JmsMessageEndpointManager tries to
automatically determine the ActivationSpec 클래스 이름 from the provider’s
ResourceAdapter 클래스 이름. Therefore, it is typically possible to provide
Spring’s generic JmsActivationSpecConfig, as the following 예제 shows:
1@Bean 2public JmsMessageEndpointManager jmsMessageEndpointManager(ResourceAdapter resourceAdapter, 3 MessageListener myMessageListener) { 4 5 JmsActivationSpecConfig specConfig = new JmsActivationSpecConfig(); 6 specConfig.setDestinationName("myQueue"); 7 8 JmsMessageEndpointManager endpointManager = new JmsMessageEndpointManager(); 9 endpointManager.setResourceAdapter(resourceAdapter); 10 endpointManager.setActivationSpecConfig(specConfig); 11 endpointManager.setMessageListener(myMessageListener); 12 return endpointManager; 13}
1@Bean 2fun jmsMessageEndpointManager( 3 resourceAdapter: ResourceAdapter, myMessageListener: MessageListener) = 4 JmsMessageEndpointManager().apply { 5 setResourceAdapter(resourceAdapter) 6 activationSpecConfig = JmsActivationSpecConfig().apply { 7 destinationName = "myQueue" 8 } 9 messageListener = myMessageListener 10 }
1<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"> 2 <property name="resourceAdapter" ref="resourceAdapter"/> 3 <property name="activationSpecConfig"> 4 <bean class="org.springframework.jms.listener.endpoint.JmsActivationSpecConfig"> 5 <property name="destinationName" value="myQueue"/> 6 </bean> 7 </property> 8 <property name="messageListener" ref="myMessageListener"/> 9</bean>
Alternatively, you can set up a JmsMessageEndpointManager with a given
ActivationSpec 객체. The ActivationSpec 객체 may also come from a JNDI 조회
(사용하여 <jee:jndi-lookup>). The following 예제 shows how to do so:
1@Bean 2JmsMessageEndpointManager jmsMessageEndpointManager(ResourceAdapter resourceAdapter, 3 MessageListener myMessageListener) { 4 5 ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); 6 spec.setDestination("myQueue"); 7 spec.setDestinationType("jakarta.jms.Queue"); 8 9 JmsMessageEndpointManager endpointManager = new JmsMessageEndpointManager(); 10 endpointManager.setResourceAdapter(resourceAdapter); 11 endpointManager.setActivationSpec(spec); 12 endpointManager.setMessageListener(myMessageListener); 13 return endpointManager; 14}
1@Bean 2fun jmsMessageEndpointManager( 3 resourceAdapter: ResourceAdapter, myMessageListener: MessageListener) = 4 JmsMessageEndpointManager().apply { 5 setResourceAdapter(resourceAdapter) 6 activationSpec = ActiveMQActivationSpec().apply { 7 destination = "myQueue" 8 destinationType = "jakarta.jms.Queue" 9 } 10 messageListener = myMessageListener 11 }
1<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"> 2 <property name="resourceAdapter" ref="resourceAdapter"/> 3 <property name="activationSpec"> 4 <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> 5 <property name="destination" value="myQueue"/> 6 <property name="destinationType" value="jakarta.jms.Queue"/> 7 </bean> 8 </property> 9 <property name="messageListener" ref="myMessageListener"/> 10</bean>
See the javadoc for JmsMessageEndpointManager,
JmsActivationSpecConfig,
and ResourceAdapterFactoryBean
for more details.
Spring also provides a generic JCA message endpoint manager that is not tied to JMS:
org.springframework.jca.endpoint.GenericMessageEndpointManager. This 컴포넌트 allows
for using any message listener 타입 (such as a JMS MessageListener) and any
provider-specific ActivationSpec 객체. See your JCA provider’s 문서 to
find out about the actual capabilities of your 커넥터, and see the
GenericMessageEndpointManager
javadoc for the Spring-specific 설정 details.
JCA 기반 message endpoint 관리는 EJB 2.1 Message-Driven Beans와 매우 유사합니다.<br>동일한 기반 resource provider contract를 사용합니다. EJB 2.1 MDB와 마찬가지로,<br>Spring context에서도 JCA provider가 지원하는 어떤 message listener interface든지 사용할 수 있습니다.<br>그럼에도 불구하고 Spring은 JMS에 대해 명시적인 “편의” 지원을 제공합니다. 왜냐하면 JMS가<br>JCA endpoint management contract와 함께 사용되는 가장 일반적인 endpoint API이기 때문입니다.
Receiving a Message
Annotation-driven Listener Endpoints