[SPRING] jms-spring 통합에서 메시지 리스너 빈에 메시지 선택기를 삽입하는 방법은 무엇입니까?
SPRINGjms-spring 통합에서 메시지 리스너 빈에 메시지 선택기를 삽입하는 방법은 무엇입니까?
JMS API (HornetQ 사용)로 작업 중이며 메시지 수신기 컨테이너 및 메시지 수신기에 스프링 빈을 사용하고 있습니다.
<bean id="messageListener" class="core.messaging.handler.MessageListener">
<property name="postCommandService" ref="postCommandService" />
</bean>
<bean id="messageSender"
class="lsn.messaging.sender.MessageSender">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="destination" />
</bean>
<bean id="msgListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="connectionFactory"
p:destination-ref="destination"
p:messageListener-ref="messageListener"
p:concurrentConsumers="10"
p:maxConcurrentConsumers="50"
p:receiveTimeout="5000"
p:idleTaskExecutionLimit="10"
p:idleConsumerLimit="5" />
내 메시지 수신기를 원한다면, 특정 메시지 (동일한 StringProperty를 가짐) 만 소비하면 어떻게해야합니까? 선택기는 어디에 정의해야합니까?
나는 아래의 솔루션을 가지고 있지만 MessageConsumer가 없으므로 선택기를 추가 할 수 없습니다.
String redSelector = "color='red'";
MessageConsumer redConsumer = session.createConsumer(queue, redSelector);
redConsumer.setMessageListener(new SimpleMessageListener("red"));
TextMessage redMessage = session.createTextMessage("Red");
redMessage.setStringProperty("color", "red");
producer.send(redMessage);
해결법
-
==============================
1.MessageListenerContainer에 다음과 같이 추가 할 수 있어야합니다.
MessageListenerContainer에 다음과 같이 추가 할 수 있어야합니다.
p : messageSelector = "color = 'red'"
from https://stackoverflow.com/questions/12820306/how-to-inject-a-message-selector-to-message-listener-bean-in-jms-spring-integrat by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 싱글 톤 DAO 객체를 가지고 있어도 괜찮습니까? (0) | 2019.05.07 |
---|---|
[SPRING] Java 구성에서 Spring 동적 언어 지원 사용 (0) | 2019.05.07 |
[SPRING] Spring 3.1 환경 설정 : 환경이 주입되지 않음 (0) | 2019.05.07 |
[SPRING] 스프링 데이터 jpa와 querydsl로 왼쪽 결합 (0) | 2019.05.07 |
[SPRING] @Configuration 및 @Controller 클래스를 주석 처리했습니다. 리팩토링에 도움이 필요하다. (0) | 2019.05.06 |