ActiveMQ Springでのメッセージの非同期受信(6)
転載は出典:http://eksliang.iteye.com/blog/2243158
一、概説
JmsTemplateのreceive()メソッドが呼び出されると、JmsTemplateはActiveMQからメッセージを取得しようとします.使用可能なメッセージがない場合、receive()メソッドはメッセージが取得されるまで待機します.すなわち,このメソッドは同期される.これは、受信者がメッセージの到来を辛抱強く待たなければならないことを意味し、receive()メソッドは、利用可能なメッセージ(またはメッセージタイムアウト)があるまでブロックされる.
Spring 2.0は、EJB 3のMDBと非常に類似した非同期受信メッセージのニーズを満たすために独自のメッセージ駆動Bean形式を提供することが好ましい.ここでは最もポピュラーなメッセージドライバPOJO(Springベース)、EJB 3の紹介は行いません.
二、POJOを宣言して非同期にメッセージを受信する
メッセージを送信するコードは次のとおりです.
次のようにメッセージコードを受信するためにUserHandlerを宣言します.
Springは、JMSキューまたはトピックからのメッセージをPOJOで処理できる能力を提供します.これがSpringの強みです.
三、メッセージリスナーの構成
POJOにメッセージを受信する能力を与えるにはspringでメッセージドライバとして構成する必要がある.Springのjmsネーミングスペースは私たちに必要なすべてを提供してくれました.コードは以下の通り、上のPOJO(UserHandler)を、メッセージドライバコードは以下のように構成する.
上記のコードでは、メッセージリスナーコンテナにメッセージリスナーが含まれています.メッセージリスナーコンテナは特殊なbeanであり、JMSの宛先を監視し、メッセージの到着を待つことができる.メッセージが到着すると、彼はメッセージを取り出し、このメッセージに興味のあるメッセージリスナーにメッセージを伝えます.:メッセージドライブコンテナ、connection-factory=「connectionFactory」プロパティで接続ファクトリが構成されています.コンテナ内のは、この接続工場を使用して傍受する. :beanとメッセージを処理できる方法を識別するメッセージリスナー.
一、概説
JmsTemplateのreceive()メソッドが呼び出されると、JmsTemplateはActiveMQからメッセージを取得しようとします.使用可能なメッセージがない場合、receive()メソッドはメッセージが取得されるまで待機します.すなわち,このメソッドは同期される.これは、受信者がメッセージの到来を辛抱強く待たなければならないことを意味し、receive()メソッドは、利用可能なメッセージ(またはメッセージタイムアウト)があるまでブロックされる.
Spring 2.0は、EJB 3のMDBと非常に類似した非同期受信メッセージのニーズを満たすために独自のメッセージ駆動Bean形式を提供することが好ましい.ここでは最もポピュラーなメッセージドライバPOJO(Springベース)、EJB 3の紹介は行いません.
二、POJOを宣言して非同期にメッセージを受信する
メッセージを送信するコードは次のとおりです.
/**
* JmsTemplate
* @param user
*/
public void send(final User user){
jmsTemplate.send(new MessageCreator() {
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
ObjectMessage msg = session.createObjectMessage();
msg.setObject(user);
return msg;
}
});
}
次のようにメッセージコードを受信するためにUserHandlerを宣言します.
package com.gosun.jms.pojo;
import com.gosun.jms.domain.User;
public class UserHandler{
public void handler(User user){
System.out.println(" :"+user);
}
}
Springは、JMSキューまたはトピックからのメッセージをPOJOで処理できる能力を提供します.これがSpringの強みです.
三、メッセージリスナーの構成
POJOにメッセージを受信する能力を与えるにはspringでメッセージドライバとして構成する必要がある.Springのjmsネーミングスペースは私たちに必要なすべてを提供してくれました.コードは以下の通り、上のPOJO(UserHandler)を、メッセージドライバコードは以下のように構成する.
<bean id="userHandler" class="com.gosun.jms.pojo.UserHandler"></bean>
<jms:listener-container connection-factory="connectionFactory">
<!-- -->
<jms:listener destination="queue.destination" ref="userHandler" method="handler"/>
</jms:listener-container>
上記のコードでは、メッセージリスナーコンテナにメッセージリスナーが含まれています.メッセージリスナーコンテナは特殊なbeanであり、JMSの宛先を監視し、メッセージの到着を待つことができる.メッセージが到着すると、彼はメッセージを取り出し、このメッセージに興味のあるメッセージリスナーにメッセージを伝えます.