1

2 つのリスナー コンテナーを確実にするにはどうすればよいですか。

<bean id="listenerContainer"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="messageListener" ref="MessageListener" />
    <property name="connectionFactory" ref="tcf" />
    <property name="destinationName" value="${jms-topic}" />
    <property name="pubSubDomain" value="true" />
</bean>

<bean id="listenerContainer-2"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="messageListener" ref="MessageListener" />
    <property name="connectionFactory" ref="tcf" />
    <property name="destinationName" value="${jms-topic-2}" />
    <property name="pubSubDomain" value="true" />
</bean>

<bean id="MessageListener" class="com.my.url.jms.listener.DefaultMessageListener">
    <property name="transformer" ref="transformer" />
    <property name="publisher" ref="publisher" />
</bean>

さまざまなトピックからメッセージを受け取ります。スレッドセーフですか?

ご覧のとおり、他の Spring Bean にも依存している同じメッセージ リスナーを使用しています。すべてのメッセージは、同じクラスの同じ onMessage メソッドによって受信されます。

public class SomeKlass implements MessageListener {


    public void onMessage(Message message) {        
            //Do some work
    }

}

この種の問題のベストプラクティスについて誰かがアドバイスしてくれますか? 両方のトピックからのメッセージを同じ方法で処理する必要があるため、必要な MessageListener は 1 つだけです。

ありがとう

4

1 に答える 1

2

はい、そうではない状態でない限り、まったく問題ありませSomeKlassん。

于 2012-10-23T19:23:36.937 に答える