SpringFramework 4 시리즈 의 SpringJMS: (4) 비동기 수신 메시지 2. 모니터 구축

Spring 에서 감청 기 를 구축 하 는 방법 은 세 가지 가 있 습 니 다.
모니터 인터페이스 구현
어댑터 위탁 관리
주해 감청 기
이 가운데 인터페이스 와 주해 감청 기 를 실현 하려 면 감청 기 용기 의 지원 이 필요 하 다.
인 터 페 이 스 를 실현 하 는 모니터 를 구축 하 다.
모니터 클래스 를 작성 하고 모니터 인 터 페 이 스 를 실현 합 니 다.
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"/>

좋은 웹페이지 즐겨찾기