电话:0731-83595998
导航

经验之谈:对EJB中SessionBean的见解

来源: 2017-12-13 14:46

  一.Enterprise Beans

  在EJB(Enterprise Java Beans)中定义了两种不同类别的Enterprise Bean :  *会话 Bean (Session Bean) 
1. 会话 Bean (Session Bean) 
A. 状态会话 Bean (Stateful Session Bean) 
1.1 状态会话 Bean (Stateful Session Bean) 
1.2无状态会话 Bean (Stateless Session Bean) 
实体Bean (Entity Bean)只是数据模型,它不包括商务逻辑。实体Bean (Entity Bean)可以将关系/对象数据库的数据映射到内存中供其它组件使用。实体Bean (Entity Bean)是一直存在的,而且具有很高的容错性能。实体Bean (Entity Bean)能供允许多用户同时访问。

  二. 会话 Bean (Session Bean)

  Ejb的执行过程是被放在一个EJB容器中进行的,所以客户端不会直接调用我们写好的Enterprise Bean ,而是调用EJB容器生成的一个EJBObject (EJB对象)来实现。那么,我们在编写服务器端的Enterprise Bean 时,就要考虑这点。既然客户端不能直接访问,就由EJBObject来代劳,所以在编写服务器端时,就要编写服务器端的一个接口(Remote)用来与客户机联系,实力化EJBObject。要生成EJBObject 就要调有Home 接口,来建立这个实力。

  以下是会话 Bean 的代码分析:  A.Enterprise Bean 类:sailorsy.class 
它是EJB容器和Enterprise Bean互相作用的关口。 
import javax.ejb.*; 
private SessionContext ctx=null; 
this.ctx=ctx; 
}//class sailorsy ejbCreate(…)方法 
import java.rmi.*; 
public class sailorsy implements SessionBean{ 
public voic setSessionContext(SessionContext ctx){ 
}//setSessionContext 
}//ejbCreate 
如果初始化的Enterprise Bean 过多,EJB容器将其中的一些挂起(passivate),释放他们所占用的空间。 
import javax.ejb.*; 
private SessionContext ctx=null;

  public voic setSessionContext(SessionContext ctx){ 
}//setSessionContext

  public void ejbCreate() { 
public void ejbPassivate() { 

  }//class sailorsy

|||

  4.ejbActivate()方法 
import java.rmi.*; 
public class sailorsy implements SessionBean{ 

  public voic setSessionContext(SessionContext ctx){ 
}//setSessionContext

  public void ejbCreate() { 
public void ejbPassivate() { 

  public void ejbActivate() { 

  }//class sailorsy ejbRemove()方法 
import java.rmi.*; 
public class sailorsy implements SessionBean{ 

  public voic setSessionContext(SessionContext ctx){ 
}//setSessionContext

  public void ejbCreate() { 

  public void ejbPassivate() { 

  public void ejbActivate() { 

  public void ejbRemove() { 

  public String showname(){ 
}//自己的商务方法 
以上这些是EJB必需的回调方法,我们可以在里面加入自己的方法,加入自己的商务逻辑。 
import java.rmi.*; 

  public interface sailorsyHome extends EJBHome { 

import java.rmi.*; 

  public interface sailorsyRemote extends EJBObject { 
}

 

|||

  三.调用会话 Bean:sailorsyTestClient1

  import javax.naming.*; 
import javax.rmi.PortableRemoteObject; 

  public class sailorsyTestClient1 { 

  //Construct the EJB test client 
try { 
Context ctx = new InitialContext();

  //look up jndi name 

  //cast to Home interface 

  } 
e.printStackTrace(); 
}

  //----------------------------------------------------------------------------
//----------------------------------------------------------------------------

  public sailorsyHome getHome() { 

  public static void main(String args) throws Exception{ 
sailorsyRemote sr=client.getHome() .create() ; 
System.out.print(s); 
// methods that will return a Remote interface reference. Then 

以上的EJB在win2000+jbuilder5/jbuilder6+BAS4.5经过测试。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
拼团课程更多+
热门排行
  • 长理培训微信公众号
    每日推送精彩考试资讯
    长按二维码识别
    微信搜索“ 长理培训
  • 加入QQ群一起来考国网!
    QQ群号:223940140
    点击进入

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端