SpringFramework 4 시리즈 의 SpringJMS: (4) 비동기 수신 메시지 2. 모니터 구축
모니터 인터페이스 구현
어댑터 위탁 관리
주해 감청 기
이 가운데 인터페이스 와 주해 감청 기 를 실현 하려 면 감청 기 용기 의 지원 이 필요 하 다.
인 터 페 이 스 를 실현 하 는 모니터 를 구축 하 다.
모니터 클래스 를 작성 하고 모니터 인 터 페 이 스 를 실현 합 니 다.
public class ListenerDemo implements MessageListener {
public void onMessage(Message message) {
System.out.println(message.toString());
}
}
MDP 등록
<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageListener1" class="spring.jms.ListenerDemo" />
listenerContainerFactory 설정
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="destination" ref="jmsDestination"/>
<property name="messageListener" ref="messageListener1" />
</bean>
테스트
먼저 queue 에 message 를 보 내 고 SpringFramework 4 시리즈 의 SpringJMS: (1) JMS 구축
그리고 Spring 을 초기 화하 면 됩 니 다. 아주 간단 합 니 다.
같은 spring config 를 사용 하면 message 를 보 낼 때 spring - config 가 초기 화 되 었 습 니 다. 이 때 는 이미 모니터 가 작 동 하고 있 습 니 다. spring 을 다시 초기 화 할 필요 가 없습니다.
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
어댑터 위탁 관리 모니터 구축
모니터 클래스 작성
인 터 페 이 스 를 실현 할 필요 도 없고, spring 의 상하 문 에 등록 할 필요 도 없다
public class ListenerDemo2 {
public void onMessage(Message message) {
System.out.println(message.toString());
}
어댑터 설정
<bean id="messageAdapter"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean class="spring.jms.ListenerDemo2"/>
</constructor-arg>
<property name="defaultListenerMethod" value="onMessage"/>
</bean>
listenerContainerFactory 설정
어댑터 를 listener 로 container 에 설정 합 니 다.
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="destination" ref="jmsDestination"/>
<property name="messageListener" ref="messageAdapter" />
</bean>
테스트
먼저 queue 에 message 를 보 내 고 SpringFramework 4 시리즈 의 SpringJMS: (1) JMS 구축
그리고 Spring 을 초기 화하 면 됩 니 다. 아주 간단 합 니 다.
충돌 을 피하 기 위해 message 와 모니터 를 보 내 는 것 을 권장 합 니 다.
같은 spring config 를 사용 하면 message 를 보 낼 때 spring - config 가 초기 화 되 었 습 니 다. 이 때 는 이미 모니터 가 작 동 하고 있 습 니 다. spring 을 다시 초기 화 할 필요 가 없습니다.
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
주석 모니터 구축
모니터 클래스 작성
주해 @ componet 를 사용 하여 구성 요소 클래스 임 을 설명 합 니 다.
주석 @ JmsListener 를 사용 하여 감청 기 방법 이 라 고 설명 합 니 다. 그 중에서 destination 은 감청 대기 열 이름 을 표시 하고 container Factory 는 사용 하 는 Listener Container Factory 를 표시 합 니 다.
@Component("listenerDemo3")
public class ListenerDemo3 {
@JmsListener(destination = "testQueue", containerFactory = "jmsListenerContainerFactory")
public void receiveMessage(String message) {
System.out.println("Received <" + message + ">");
}
}
listenerContainerFactory 설정
이 럴 때 는 모니터 를 모니터 용기 에 정의 할 필요 가 없다.여기 서 필 자 는 속성 concurrency 를 추가 로 정의 하여 동시에 몇 개의 consumer 를 생 성 할 것 이 라 고 밝 혔 다.
구체 적 으로 는 스프링 이 자동 으로 생 성 됩 니 다.
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="destination" ref="jmsDestination"/>
<property name="concurrency" value="3-10"/>
</bean>
JMS 드라이버 설정
spring 의 config 파일 에 서 는 jms 주해 구동 을 정의 해 야 합 니 다. 주 해 된 감청 기 류 를 자동 으로 감청 기 용기 에 넣 어 작업 을 시작 합 니 다.
<jms:annotation-driven/>
여기 서 필 자 는 component - scan 을 설정 하지 않 으 면 모니터 도 작 동 할 수 있 는 실험 을 한 적 이 있다.이 주해 구동 은 @ componet 의 주해 기 호 를 자동 으로 검색 할 것 같 습 니 다.
<context:component-scan base-package="spring"/>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.