📄 convertejbbean.java~89~
字号:
package prj30_1;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
//实现类,实现了业务逻辑
//有状态会话Bean
//多个客户端调用服务器端的Ejb,实际上,服务器端为每一个客户端生成一个对象服务,构造函数-->setSessionContext-->ejbCreate
//客户端可以命令服务器端将它对应的Ejb消亡,remote.remove()
//在客户端作create方法时,服务器端生成ejb对象
//优势:既然是每一个客户端生成相应的Ejb对象,那么应该能够为每一个客户端保持状态,比如客户登陆之后的信息,可以保存在Ejb内,通过get函数访问
//特点:你可以用成员变量来定义一些状态信息,你可以用额外的ejbCreate函数来初始化这些成员变量
//无状态会话bean内可以定义成员变量,但是必须是所有客户共享的信息(数据库连接),不是针对某个客户的状态信息,有状态会话Bean,可以定义针对某个客户的信息
//缺陷:比较消耗内存
//1:在服务器内有一个钝化机制,长期不用的ejb会被暂时保存在缓存内,腾出内存,此时自动调用ejbPassivate,钝化的ejb如果被调用,
//会到达活动状态,此时自动调用ejbActivate
public class ConvertEjbBean implements SessionBean {
SessionContext sessionContext;
public ConvertEjbBean(){//ejb创建时自动调用
System.out.println("ConvertEjbBean");
}
public void ejbCreate() throws CreateException {//J2EE规范函数,和home接口中的create相对应,ejb创建时自动调用
System.out.println("ejbCreate");
}
public void setSessionContext(SessionContext sessionContext) {//从接口重写,ejb创建时自动调用,初始化资源可以写在这里
System.out.println("setSessionContext");
this.sessionContext = sessionContext;
}
public void ejbRemove() {//从接口重写,当ejb消亡时自动调用,释放资源代码写在这里
System.out.println("ejbRemove");
}
public void ejbActivate() {//从接口重写,从钝化状态到达活动状态时自动调用,你可以得到一些资源
System.out.println("ejbActivate");
}
public void ejbPassivate() {//从接口重写,钝化时调用,你可以释放一些资源
System.out.println("ejbPassivate");
}
public double getRmb(double usd) {//业务逻辑实现,不能泄漏给客户端,和远程接口内的getRmb对应
System.out.println("getRmb");
//从数据库查询出汇率
double rate = 7.92;
double rmb = rate * usd;
return rmb;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -