Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539404
  • 博文数量: 260
  • 博客积分: 10435
  • 博客等级: 上将
  • 技术积分: 1939
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 14:50
文章分类

全部博文(260)

文章存档

2011年(22)

2010年(209)

2009年(29)

我的朋友

分类: Java

2010-04-19 11:17:15






EJB容器可以接受三类EJB

  • 会话Bean(Session Beans)
    • 无状态会话Bean(Stateless Session Beans)
    • 有状态会话Bean(Stateful Session Beans)
  • 实体Bean(Entity Beans)
  • 消息驱动Bean(Message Driven Beans ,MDBs)
 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。
2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。
3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。




客户端调用session bean,session bean调用entity bean的好处


1.session   bean的本质就是用来处理会话,所以处理用户的会话它当然优于enty   bean  
  2.由于它的本质,它可以跟踪客户信息,这些是enty   bean   很难做到的,也没有必要.  
  3.从分层的关系来说,session   bean主要工作于业务逻辑层,而enty   bean则接近于数据层,设计者的意图就是把操作与数据通过session   bean   和   enty   bean   分离开来拉  
  1、分离客户,服务层,既解偶。  
  2、减少客户网络调用次数,即减少网络流量。  
  3、包装实体BEAN异常,而非显示给客户端。







JavaBeans是描述Java的软件组件模型,这个模型设计出的Java组件,可以供第三方厂家集成到其他开发人员的软件产品中。应用程序开发者可以从厂家购买现成的组件,拖放到开发者工具容器中,对组件进行必要的修改、测试和修订以适应用户的要求。在Java模型中,组件可以修改或与其他组建组合以生成新组件或完整的应用程序。许多组件代表一个用户接口的可见部分,组件也可以表示一个程序中的非可视元素,例如定时器和数据库等。

从组件用户的角度看,组件是一个可用于特定目的的自主式的非常专门的对象。可以在一个Jsp或者应用程序中使用多次,并在多个位置使用。组件的实现方法对于用户来说是透明的,他只需了解使用的接口即可。

从组件编写者的角度看,只要适合JavaBeans规范,组件可以是用代码创建完成的任何功能的模块。组件编写者只要了解Bean的接口,而无需关心用户如何使用,也就是无需了解应用层的逻辑。

编写JavaBean组件的方法同编写其他Java类一样。在最简单的层次上看,JavaBean组件是符合JavaBean组件模型的任何Java类。JavaBean有如下特征:

1.它是一个公共(public)类;

2.它有一个公共的(public)无参数的构造器;

3.它有正确构造了存取其方法的属性;

4.它可以被定制,因此用户可以修改组建的外观和行为;

5.它修改的状态能够通过串行化(serialization)保存。


组件(JavaBeans)一般具有公共(public)属性、方法与事件,组件用户可以使用设置属性、调用方法等。

1JavaBeans组件属性

JavaBeans的属性与一般Java面向对象程序中对象的属性是一个概念,具体体现为类中的变量。简单属性表示一个具有一对get/set方法的变量,方法的名称要和该属性名相对应。例如下面是一个简单的人员类,它的属性都属于简单属性。

public class Employee implements Serializable

{

 

  public Employee()

  {

  }

 

  private String empID;

  private String empName;

  private String empPwd;

  private String empDepID;

  private String empDegID;

//获得EmpID

  public String getEmpID()

  {

    return empID;

  }

 

//设置EmpID

 public void setEmpID(String id)

  {

    this.empID = id;

  }

//以下都是都属性的get/set

  public String getName()

  {

    return empName;

  }

 

  public void setName(String name)

  {

    this.empName = name;

  }

 

  public String getPassword()

  {

    return empPwd;

  }

 

  public void setPassword(String pwd)

  {

    this.empPwd = pwd;

  }

 

  public String getDepID()

  {

    return empDepID;

  }

 

  public void setDepID(String depid)

  {

    this.empDepID = depid;

  }

 

  public String getDegID()

  {

    return empDegID;

  }

 

  public void setDegID(String degid)

  {

    this.empDegID = degid;

  }

 

  public static void main(String[] args)

  {

    Employee employee1 = new Employee();

  }

}

2JavaBeans组件方法

组件方法(methods)封装了组件的行为,它们是可以从其他的组件、Jsp或应用程序调用的标准Java方法。对组件方法能够做什么,很少有限制,可以实现组件对象的任何方法。对于方法的设计应尽量做到直观,以使方法的目的很明显。在方法使用上要避免先决条件,如果必须在方法调用上有先决条件,那么要加入测试来验证条件满足,并提供对于方法调用不恰当情况的异常处理。

在方法命名是要注意,为了使组件容易使用,应选择较短的描述性名词。还要注意方法是动作,名字要以动词开头。例如一个人员管理JavaBean EmployeeMgr的获得员工的ID的方法命名为getEmployeeByID(String id)

3JavaBeans组件事件

Events允许组件在运行时从用户接收输入和反馈。它们用事件监听器(Listener)编写的代码连接组件中发生的事情(例如鼠标操作、按键等)。JavaBeans规范定义允许组件在一个程序中生成事件,并对事件作出反应。生成事件的组件是一个source(源)组件,对事件发生作出反应的组件是一个监听器(Listener)。




阅读(591) | 评论(0) | 转发(0) |
0

上一篇:玉器识别

下一篇:spring

给主人留下些什么吧!~~