EJB3.0编程实践:初识EJB与Bean类型解析

需积分: 3 1 下载量 75 浏览量 更新于2024-09-15 收藏 53KB DOC 举报
"EJB3.0编程实践与EJB基本概念解析" EJB(Enterprise JavaBeans)是Java EE(现在称为Jakarta EE)平台的一部分,用于构建企业级分布式应用程序。EJB提供了一种标准的方式来封装业务逻辑,使得开发者可以专注于代码的核心功能,而将事务管理、安全性、并发控制等复杂任务交给EJB容器处理。 1. EJB 2.0与EJB 1.1的区别: EJB 2.0相比1.1版本,引入了更多的规范和组件模型,如CMP(容器管理的持久性)和BMP( bean管理的持久性)的Entity Bean,以及更复杂的生命周期管理和事务支持。EJB 2.0引入了EJB QL(查询语言)和ejb-jar.xml配置文件,以提高组件的可配置性和灵活性。同时,EJB 2.0的Session Beans通常需要编写大量的接口和实现类,而EJB 1.1则更为原始和基础。 2. EJB容器的角色: EJB容器是EJB系统的核心,它负责管理EJB的整个生命周期,包括创建、初始化、激活、去活、销毁等。容器还提供了事务管理、安全控制、资源连接池等服务,并通过JNDI(Java Naming and Directory Interface)使得客户端能够查找和调用EJB。 3. EJB与JavaBean的区别: JavaBean是一种可复用的组件,主要用于构建用户界面,没有严格的规范,可以有任意的构造器。JavaBean通常是本地组件,不能跨进程访问。而EJB是分布式组件,基于RMI技术,可以在不同进程甚至不同机器间进行通信。EJB需要部署在特定的容器(如WebSphere、WebLogic)中,由容器管理,而客户端通过容器与EJB交互。 4. SessionBean与EntityBean的区别: SessionBean主要处理业务逻辑,它们是非持久性的,用于短暂的会话,例如处理用户请求、调用其他EJB或数据库操作。它们可以是Stateful(有状态)或Stateless(无状态)。Stateful Session Bean保持与特定客户端的会话状态,而Stateless Session Bean不保留任何客户端状态,对每个请求都独立处理。 5. EntityBean: EntityBean代表应用中的持久数据,对应于数据库中的记录或实体。它们可以是CMP或BMP,前者由容器管理持久化,后者由开发者自行管理。EntityBean对于客户端来说是持久性对象,可以映射到数据库中的表。 6. MessageDriven Bean(MDB): MDB是EJB 3.0引入的新类型,专门用于处理消息队列(JMS)中的消息,实现异步处理,降低了系统的响应时间。 EJB技术的演进反映了Java EE平台的发展,从早期的复杂API和XML配置,到EJB 3.0及以后版本的简化和注解驱动,旨在提升开发效率和易用性。EJB仍然是构建大型企业级应用的重要组成部分,尤其在处理复杂业务逻辑和分布式数据操作时。