?? convertejbbean.java~57~
字號(hào):
package prj30_1;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
//實(shí)現(xiàn)類,實(shí)現(xiàn)了業(yè)務(wù)邏輯
//無(wú)狀態(tài)會(huì)話Bean
//多個(gè)客戶端調(diào)用服務(wù)器端的Ejb,實(shí)際上,服務(wù)器端只生成一個(gè)對(duì)象為他們服務(wù),構(gòu)造函數(shù)-->setSessionContext-->ejbCreate;節(jié)省內(nèi)存
//客戶端無(wú)法命令服務(wù)器端將某個(gè)Ejb消亡,由服務(wù)器決定(比如重新部署,長(zhǎng)期無(wú)人使用)
//在客戶端作create方法時(shí),服務(wù)器端并不生成ejb對(duì)象,在調(diào)用業(yè)務(wù)方法時(shí)才生成,延遲加載,節(jié)省資源
//優(yōu)勢(shì):?jiǎn)螒B(tài),延遲加載,節(jié)省資源,具有安全性的配置支持
//缺陷:以下情況下,用這種sessionBean不安全:如果你要保持跨方法調(diào)用的狀態(tài)變量(方法1修改變量,方法2讀取變量),或者定義保存客戶端狀態(tài)的成員時(shí)
public class ConvertEjbBean implements SessionBean {
SessionContext sessionContext;
String account;
public ConvertEjbBean(){//ejb創(chuàng)建時(shí)自動(dòng)調(diào)用
System.out.println("ConvertEjbBean");
}
public void ejbCreate() throws CreateException {//J2EE規(guī)范函數(shù),和home接口中的create相對(duì)應(yīng),ejb創(chuàng)建時(shí)自動(dòng)調(diào)用
System.out.println("ejbCreate");
}
public void setSessionContext(SessionContext sessionContext) {//從接口重寫,ejb創(chuàng)建時(shí)自動(dòng)調(diào)用,初始化資源可以寫在這里
System.out.println("setSessionContext");
this.sessionContext = sessionContext;
}
public void ejbRemove() {//從接口重寫,當(dāng)ejb消亡時(shí)自動(dòng)調(diào)用,釋放資源代碼寫在這里
System.out.println("ejbRemove");
}
public void ejbActivate() {//從接口重寫,在無(wú)狀態(tài)sessionBean內(nèi),一般不使用
System.out.println("ejbActivate");
}
public void ejbPassivate() {//從接口重寫,在無(wú)狀態(tài)sessionBean內(nèi),一般不使用
System.out.println("ejbPassivate");
}
public double getRmb(double usd) {//業(yè)務(wù)邏輯實(shí)現(xiàn),不能泄漏給客戶端,和遠(yuǎn)程接口內(nèi)的getRmb對(duì)應(yīng)
System.out.println("getRmb");
//從數(shù)據(jù)庫(kù)查詢出匯率
double rate = 7.92;
double rmb = rate * usd;
return rmb;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -