Java EJB面试深度解析:核心概念与区别

需积分: 10 2 下载量 187 浏览量 更新于2024-12-25 收藏 54KB DOC 举报
"Java EJB面试题" 在Java企业级开发中,Enterprise JavaBeans (EJB) 是一种标准的组件模型,用于构建可部署在Java应用服务器上的分布式、面向服务的后端应用。EJB提供了诸如事务管理、安全性和并发控制等高级功能,使得开发者可以专注于业务逻辑,而无需关注底层基础设施。 EJB 2.0规范包含的内容有: 1. Bean 提供者:创建EJB组件的开发者或组织。 2. 应用程序装配者:负责将EJB组件整合到应用程序中的人。 3. EJB 容器:执行EJB生命周期管理、安全性、事务、并发控制等核心功能的组件。 4. EJB 配置工具:用于配置和部署EJB的工具。 5. EJB 服务提供者:提供运行EJB所需服务的厂商,如应用服务器。 6. 系统管理员:管理EJB环境和配置的人。 EJB 2.0相对于1.1版本的主要区别在于增加了对组件的更多管理和支持,比如引入了容器管理的持久化(CMP),简化了EJB的使用,并强化了事务和安全特性。 EJB与JavaBean之间的主要区别在于: 1. JavaBean是可复用的组件,主要用于用户界面展示,没有严格的规范,但通常需要有无参构造器且实现Serializable接口。 2. EJB则是一种服务器端的组件,通常用于处理业务逻辑和数据访问,支持远程调用,具有更严格的规范和更复杂的生命周期管理。 3. JavaBean通常是本地进程内的组件,不支持跨进程访问;EJB基于RMI和JNDI,可以实现跨进程、跨计算机的远程访问。 4. EJB必须部署在应用服务器中,由容器管理,而JavaBean可以直接在Servlet容器(如Tomcat)中运行。 EJB基于的技术包括JNDI(Java Naming and Directory Interface)用于查找和绑定组件,RMI(Remote Method Invocation)实现远程调用,以及JTA(Java Transaction API)进行事务管理。EJB主要分为三类: 1. SessionBean:负责业务逻辑,分为Stateful Session Bean(状态会话bean)和Stateless Session Bean(无状态会话bean)。 - Stateful Session Bean保持客户端会话状态,每个客户端都有一个单独的bean实例,适合需要维护用户状态的场景。 - Stateless Session Bean不保存客户端状态,同一类型的所有客户端请求共享同一bean实例,适合无状态的服务调用。 2. EntityBean:代表持久化数据,分为CMP(Container Managed Persistence,容器管理的持久化)和BMP(Bean Managed Persistence,bean自管理的持久化)。 - CMP由容器自动处理数据的持久化,减少开发者的工作量。 - BMP允许开发者自己控制数据的存储和检索,提供更多灵活性。 3. MessageDrivenBean:用于处理消息队列中的JMS(Java Message Service)消息,常用于异步处理。 面试时,理解这些概念和技术的差异及其应用场景,对于展现Java EE方面的专业能力至关重要。熟悉EJB的设计模式和最佳实践,以及如何在现代Java开发中使用轻量级替代品(如Spring框架)也是面试中可能讨论的话题。