在做企业业务继承的时候,通常利用session进行提供同步的远程过程服务.通过EAI等Q组件,实现企业级的数据总线,把应用之间的网状结构关系进行星型化..利用mdb从jms(Q)服务器上获取相应的消息服务.总之在企业信息化的过程中,基于j2ee的应用整合,ejb提供了一种良好的方法,当然你也可以选择websevice,但是在网络结构和实时处理效率上还是有很大的差别.下面详细描述以下三种ejb的生命周期,在开发中和利用他的容器回调功能,来注入和回收外部的各种资源。
1 session Bean (有状态)
有状态会话Bean实例有三种状态,不存在,就绪,和钝化。
客户端调用home接口的create 方法,ejb容器实例化一个Bean并调用setSesssionContext ejbCreate方法,使得Bean处于就绪状态。然后客户就可以使用其商业方法了。ejb容器对Bean的生命周期进行管理,一般会对最少使用的EJB进行钝化,当客户在使用这个EJB时,容器会进行激活,这个过程对客户来说是透明的。当用户调用remove方法,容器调用ejbRemove方法,ejb生命周期结束.
无状态会话Bean实例就两种状态,不存在和就绪.
客户端调用home接口的create方法,如果不存在可用的实例.jb容器实例化一个Bean并调用setSesssionContext ejbCreate方法.当客户调用remove方法之后,ejb容器则调用ejbRemove的方法,ejb生命周期结束.
2 实体bean
实体bean有三种状态,不存在,在pool中,就绪
ejb容器创建实例时调用setEntityContext,把容器的上下文传到bean组件中.实例化之后bean会移到池中,此时ejb没有和任何的实体对象进行关联,所有的bean实例是一样,容器会指派它和具体的实体标示关联,进入就绪状态。有两种方法使得一个实体bean从池化进入到就绪状态,一是客户端使用create方法,使得ejb容器调用ejbCreate and ejbPostCreate 方法,二是容器调用ejbActivate 方法,这对客户来说是透明的,只有当实体bean处于就绪状态时,才能调用其商业方法。同样如果实体bean要从就绪进行池化也有两种方法,一是客户端调用remove方法,容器调用ejbRemove;二是容器ejbPassivate方法。
bmp和cmp,在bean实例从池化到就绪时,对于bmp的实体bean,容器不会自动设置primary key.因此ejbCreate and ejbActivate 需要获得这个primary key ,如果这个key非法,ejbLoad and ejbStore methods 不能同步实体变量到数据库。ejbCreate 通过参数传入,ejbActivate 通过id = (String)context.getPrimaryKey();在pool状态,这些需要持久化的实体变量则不需要,在ejbPasssivate 中把它赋值null。unsetEntityContext,bean生命周期结束的时候,调用
3 mdb 消息bean
消息bean就两种状态:不存在和就绪
就像sessionless session bean,容器在实例化bean的时候,调用etMessageDrivenContext,ebjCreate. 调用ejbRemove方法结束生命周期。当消息到达的时候Onmessage方法。因此可以mdb是一种jms客户端企业级组件。
相关推荐
第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和消息驱动Bean。具体内容包括开发各种EJB组件的基础知识(结合开发实例)、组件生命周期的详细阐述;第3篇是本书最为令...
特别地,EJB容器作为核心组件,负责管理EJB的生命周期,包括创建、销毁、激活、去激活、数据库连接等关键任务。 - **技术栈集成**:EJB 2.0与JSP、Servlet、JNDI、JDBC、JMS等技术紧密集成,形成完整的J2EE平台,...
2. **容器**:管理和执行EJB组件,提供诸如事务管理、安全性、持久化和生命周期管理等服务。 3. **EJB组件**:封装业务逻辑,可以是会话Bean或实体Bean。 **EJB开发人员的角色分配** 1. **Business Logic ...
**EJB生命周期**: EJB的生命周期包括实例化、初始化、激活、被动使用、去激活和销毁等阶段。例如,对于会话Bean,当客户端首次调用时,服务器会创建一个实例并调用` ejbCreate()`或`ejbPostConstruct()`方法进行...
EJB 的生命周期包括: * 创建:EJB 容器创建 EJB 实例。 * 激活:EJB 实例被激活,准备提供服务。 * passesivation:EJB 实例被钝化,释放资源。 * 销毁:EJB 实例被销毁,释放所有资源。 五、EJB 的编程 EJB 的...
- EJB是Java平台为企业级应用设计的组件模型,分为三种类型:Session Beans(会话Bean)、Message-driven Beans(消息驱动Bean)和Entity Beans(实体Bean)。 - Session Beans负责业务逻辑处理,提供临时或持续性...
- **1.1.5 EJB容器提供者(EJB Container Provider)**:提供容器服务,这是EJB组件运行的环境,负责管理EJB组件的生命周期、提供服务如事务管理和持久化,并确保组件间的通信。 - **1.1.6 系统管理员(System ...
这三种类型的bean各自有不同的生命周期和使用场景。 会话bean分为有状态会话bean(Stateful Session Beans)和无状态会话bean(Stateless Session Beans)。前者能保持与客户端的交互状态,后者不维护状态,适用于...
EJB3.0改进了EJB的生命周期管理机制,提供了一种更简单的方式来控制EJB实例的创建、激活、钝化和销毁等过程。 ##### 4.4 事务管理 EJB3.0对事务管理进行了优化,支持声明式事务控制,开发者可以通过注解轻松地指定...
3. **生命周期管理**:EJB的生命周期由容器管理,包括创建、初始化、激活、钝化、销毁等步骤,而JavaBean的生命周期完全由开发者控制。 4. **事务管理**:EJB提供强大的事务管理能力,支持不同的事务隔离级别和回滚...
开发者不再需要关注复杂的EJB接口和生命周期管理,而是通过注解和简单的配置文件即可完成实体类到数据库表的映射。 #### 三、部署描述符的变化 - **EJB 2.0**:要求显式定义部署描述符(Deployment Descriptors),...
总结,EJB调用原理涉及客户端与服务器的交互、容器的管理以及EJB生命周期等多个层面。通过理解这些原理,开发者可以更好地利用EJB构建高效、可靠的分布式企业应用。阅读和研究EJB的源码,结合实际开发工具,将有助于...
3. **EJB生命周期**:EJB组件经历创建、初始化、激活、被动使用、钝化和销毁等阶段。这些阶段由容器管理,开发者只需要关注业务逻辑。 4. **EJB接口**:每个EJB都定义了至少一个接口,客户端通过这些接口与其交互。...
开发者需要手动实现ejbCreate等生命周期方法,这在处理大量EJB时显得较为繁琐。而在EJB3中,这一情况得到了显著改善,通过使用Java注解(Annotations),EJB的编写变得更加简洁。例如,一个无状态Session Bean在EJB3...
2. 服务器端:提供运行环境,包括EJB容器,负责部署、管理、调度和生命周期控制。 3. 组件:EJB本身,实现了特定的业务逻辑。 三、EJB扩展API EJB技术提供了丰富的API来扩展功能,如: 1. JPA(Java Persistence ...
EJB生命周期 EJB的生命周期由容器管理,包括创建、初始化、激活、被动使用、去激活、终止等阶段。每个阶段都有相应的回调方法,如` ejbCreate()` 和 `ejbRemove()`。 ### 4. 部署描述符 EJB 2.0使用XML部署描述...
1. **EJB类型**:EJB规范定义了三种主要类型的组件: - **会话Bean(Session Beans)**:它们代表客户端的一次交互会话,可以分为状态ful(有状态)和状态less(无状态)。有状态Bean保存了与特定客户端会话相关的...
EJB教程会深入讲解三种主要的EJB组件类型: 1. **Session Beans**:代表一次客户端会话,用于处理短期的业务逻辑。它们可以是无状态的,为每个请求创建新的实例,或者有状态的,保持与特定客户端会话的上下文。 2. *...
开发者可以定义拦截器方法,这些方法会在业务方法或生命周期回调之前/之后执行,提供了一种灵活的方式来处理跨切面关注点,如日志、事务管理等。拦截器可以定义在Bean内部或单独的类中,通过@Interceptors注解指定。...
最后,文档说明了EJB容器能够自动定义并实现的类和对象,比如EJBObject类、EJBObject桩类、Home类、Home桩类等,以及容器对EJB组件的生命周期管理和运行环境的提供。这些描述展示了EJB容器在EJB组件生命周期中扮演的...