ejb
EJB(Enterprise javaBean)是J2EE服务器端的组件模型,EJB包括会话Bean(session Bean)、实体Bean(Entity Bean)、消息驱动Bean(message Driven Bean)。EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品。
Session Bean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件,对于客户机还说,它是一种非持久性对象。Session Bean还可分为Stateful Session Bean与Stateless Session Bean,这两种Session Bean 都可以将系统逻辑放在method之中执行,不同的是Stateful Session Bean可以记录呼叫者的状态,通常来说,一个使用者会有一个Stateful Session Bean 的实体。Stateless Session Bean 不会记录使用者的状态,因此,从内存方面来看,Stateful Session Bean会消耗J2EE Server较多的内存,而它的优势在于能维持使用者的状态。从生命周期来看,Stateless Session Bean的生命周期由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean;而当客户机第一次调用Stateful Session Bean时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后词客户机调用Stateful Session Bean的方法时容器会把调用分派到与此客户机相关联的Bean实例。
Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中表的记录映射成Entity对象,Entity Bean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体,所以它的生命周期相对很长,即使EJB容器崩溃了,只要数据库中的数据存在,Entity Bean就一直存活,它的生命周期能够被容器或者Bean自己管理。Entity Bean 分为Bean管理的持久性(BMP)和容器管理的持久性。
Message Driven Bean 是EJB2.0中引入的新的企业Bean,实际上是一个异步无状态SessionBean,客户端调用MDB之后不需要等待,立刻返回。
EJB基于JDNI(Java Naming & Directory Interface 即Java命名目录服务)、RMI(Remote Method Invaction即对象请求中介协议)、JTA(Java transaction API即java事务服务)等技术实现的。