EJB面试题集与解析:核心技术、区别与应用

需积分: 0 3 下载量 116 浏览量 更新于2025-01-08 收藏 60KB DOC 举报
Java笔试题大集合及答案(106)主要集中在EJB相关知识点上,涵盖了EJB2.0的组成部分及其应用场景,以及EJB与JavaBean之间的区别。EJB2.0规范内容涉及多个组件,包括Bean提供者、应用程序装配者、EJB容器、配置工具和服务提供者等,其中EJB容器的核心作用在于管理和控制EJB的生命历程,如创建、销毁和交互。 EJB与JavaBean的主要区别在于它们的设计目标和功能定位。JavaBean是一个轻量级的、可复用的Java组件,通常用于处理客户端请求,其特点是易于开发和部署,但局限于同一进程内的通信。JavaBean需要具备无参构造器和Serializable接口以支持持久性和序列化。相比之下,Enterprise JavaBean (EJB)是更加强大的分布式组件,基于RMI技术,可以进行远程调用,适用于复杂的服务器端业务逻辑处理和数据持久化。EJB组件必须部署在企业级应用服务器中,通过EJB容器进行访问,这使得EJB能够支持跨进程和跨机器的通信。 EJB的实现基于多种技术,主要包括JNDI(Java Naming and Directory Interface)用于名称和目录服务,RMI(Remote Method Invocation)用于远程调用,以及JTA(Java Transaction API)等。根据EJB的类型,主要有以下几种: 1. SessionBean:这是最常见的EJB类型,用于执行服务器端的业务逻辑。它们是非持久性的,意味着在会话结束时会被销毁,适合处理一次性操作,如查询数据库或计算结果。 2. EntityBean:用于表示应用系统中的持久数据,通常是数据库表的映射。它是持久性的,数据在服务器端存储,并通过事务进行管理。EntityBean在客户端看起来像一个对象,但实际上是服务器上的实体视图。 3. StatefulBean:这种类型的SessionBean具有状态,每个客户端请求都会得到相同实例的引用,以保持会话状态,适用于需要记住用户行为或者状态的场景。 4. StatelessBean:没有状态,每次请求都会创建一个新的实例,适用于轻量级、无状态的服务,如计算或者简单的数据处理。 总结起来,EJB在Java EE应用中扮演了关键角色,提供了企业级服务和分布式组件解决方案,而JavaBean则更适合轻量级的、独立于服务器的应用。理解它们之间的差异和特性有助于开发者更好地选择和使用这些技术在实际项目中。