복붙노트

[SPRING] Spring Java 구성을 위해 단일 MessageListenerContainer에 여러 JMS MessageListener를 추가하는 방법

SPRING

Spring Java 구성을 위해 단일 MessageListenerContainer에 여러 JMS MessageListener를 추가하는 방법

내 spring-config.xml에 다음 xml 코드가있다.

<jms:listener-container acknowledge="auto"
        connection-factory="cachedConnectionFactory" container-type="default"
        error-handler="consumerErrorHandler" concurrency="20-25">
        <jms:listener destination="#{TaskFinished.destination}"
            method="onMessage" ref="taskFinished" />
</jms:listener-container>

이제 스프링 XML 구성 파일을 Java 구성으로 변환하고 있습니다.

나는 그것을 번역했다.

@Bean(name = "consumerJmsListenerContainer")
public DefaultMessageListenerContainer consumerJmsListenerContainer() {
    DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
    messageListenerContainer
            .setConnectionFactory(cachingConnectionFactory());
    messageListenerContainer.setConcurrency("20-25");
    messageListenerContainer.setErrorHandler(new ConsumerErrorHandler());
    messageListenerContainer
            .setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
    messageListenerContainer.setMessageListener(new TaskFinished());
    return messageListenerContainer;
}

Message Container에 MessageListener가 두 개 이상있는 경우 알아야 할 사항은 다음과 같습니다.

<jms:listener-container acknowledge="auto"
        connection-factory="cachedConnectionFactory" container-type="default"
        error-handler="consumerErrorHandler" concurrency="20-25">
        <jms:listener destination="#{questionGeneration.destination}"
            method="onMessage" ref="questionGeneration" />
        <jms:listener destination="#{friendShipLogic.destination}"
            method="onMessage" ref="friendShipLogic" />
        <jms:listener destination="#{postAvailabilityChecker.destination}"
            method="onMessage" ref="postAvailabilityChecker" />
        <jms:listener destination="#{playOn.destination}" method="onMessage"
            ref="playOn" />
</jms:listener-container>

이 xml 코드를 Java config로 변환하려면 어떻게해야합니까?

해결법

  1. ==============================

    1.네임 스페이스는 편의상 사용됩니다. 각 요소는 자체 DMLC를 가져옵니다. 외부 (컨테이너) 요소는 공통 속성을 제공하는 수단 일뿐입니다.

    네임 스페이스는 편의상 사용됩니다. 각 요소는 자체 DMLC를 가져옵니다. 외부 (컨테이너) 요소는 공통 속성을 제공하는 수단 일뿐입니다.

  2. ==============================

    2.container.setConcurrentConsumers (10);을 추가 할 수 있으며 여기서 소비자 수는 10입니다.

    container.setConcurrentConsumers (10);을 추가 할 수 있으며 여기서 소비자 수는 10입니다.

  3. from https://stackoverflow.com/questions/21881657/how-to-add-multiple-jms-messagelistners-in-a-single-messagelistenercontainer-for by cc-by-sa and MIT license