?? printbean.java
字號(hào):
/**
* Copyright (c)上海煙草(集團(tuán))公司與上海康時(shí)信息系統(tǒng)有限公司。
*/
package com.myejb;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
/**
* 消息驅(qū)動(dòng)Bean,當(dāng)一個(gè)業(yè)務(wù)執(zhí)行的時(shí)間很長(zhǎng)時(shí),而執(zhí)行結(jié)果無需實(shí)時(shí)向用戶反饋時(shí),很適合用消息驅(qū)動(dòng)Bean.消息驅(qū)動(dòng)Bean對(duì)象被調(diào)用時(shí)會(huì)調(diào)用omMessage方法
* 使用@ActivationConfigProperty注釋配置消息的各種屬性,其中destinationType指定消息的類型(topics和queues)
* Topics:可以有多個(gè)客戶端。topic發(fā)布允許一對(duì)多,或多對(duì)多通訊通道。消息的產(chǎn)生者叫做publisher,消息的接收者叫做subscriber. destinationType屬性對(duì)應(yīng)值為:javax.jms.Topic
* Queue: 僅僅允許一個(gè)消息傳送給一個(gè)客戶。一個(gè)發(fā)送者將消息放入消息隊(duì)列,接收者從隊(duì)列中抽取并得到消息。消息就會(huì)在隊(duì)列中消失。destinationType屬性對(duì)應(yīng)值為:javax.jms.Queue
* destination 屬性用作指定消息路徑,消息驅(qū)動(dòng)Bean在發(fā)布時(shí),如果路徑不存在,容器會(huì)自動(dòng)創(chuàng)建該路徑,當(dāng)容器關(guān)閉時(shí)該路徑會(huì)自動(dòng)被刪除。
* 客戶端:根據(jù)上下文來找一個(gè)連接工廠TopicConnectFactory/QueueConnectionFactory(根據(jù)topic/queue來使用相應(yīng)的類型)
* 從連接工廠得到一個(gè)連接(Connect 有兩種[TopicConnection/QueueConnection]);
* @author xywang
* @since 2009-2-12
* @version 1.0
*/
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",propertyValue="queue/myejb")
})
public class PrintBean implements MessageListener{
/* (非 Javadoc)
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
public void onMessage(Message msg){
try{
TextMessage tmsg = (TextMessage)msg;
this.print(tmsg.getText());
}catch(Exception e){
e.printStackTrace();
}
}
private void print(String text){
System.out.println(text);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -