📄 printbean.java
字号:
/**
* Copyright (c)上海烟草(集团)公司与上海康时信息系统有限公司。
*/
package com.myejb;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
/**
* 消息驱动Bean,当一个业务执行的时间很长时,而执行结果无需实时向用户反馈时,很适合用消息驱动Bean.消息驱动Bean对象被调用时会调用omMessage方法
* 使用@ActivationConfigProperty注释配置消息的各种属性,其中destinationType指定消息的类型(topics和queues)
* Topics:可以有多个客户端。topic发布允许一对多,或多对多通讯通道。消息的产生者叫做publisher,消息的接收者叫做subscriber. destinationType属性对应值为:javax.jms.Topic
* Queue: 仅仅允许一个消息传送给一个客户。一个发送者将消息放入消息队列,接收者从队列中抽取并得到消息。消息就会在队列中消失。destinationType属性对应值为:javax.jms.Queue
* destination 属性用作指定消息路径,消息驱动Bean在发布时,如果路径不存在,容器会自动创建该路径,当容器关闭时该路径会自动被删除。
* 客户端:根据上下文来找一个连接工厂TopicConnectFactory/QueueConnectionFactory(根据topic/queue来使用相应的类型)
* 从连接工厂得到一个连接(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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -