Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。
Java Bean 实际上相当于微软 COM 模型中的本地进程内 COM 组件,它是不能被跨进程访问的。
Enterprise Java Bean 相当于 DCOM ,即分布式组件。它是基于 Java 的远程方法调用( RMI )技术的,所以 EJB 可以被远程访问(跨进程、跨计算机)。但 EJB 必须被布署在诸如 Webspere 、 WebLogic 这样的容器中, EJB 客户从不直接访问真正的 EJB 组件,而是通过其容器访问。 EJB 容器是 EJB 组件的**, EJB 组件由容器所创建和管理。
客户通过容器来访问真正的 EJB 组件。
EJB是Enterprise Java Bean 企业级JavaBeanEJB是遵守JavaBean规范的,也可以说是更加具体的JavaBeanEJB又分为SessionBean(会话Bean)、EntityBean(实体Bean)、MessageDriverBean(消息驱动Bean)以下是它的定义:EJB是一种服务器端的组件架构,它使得人们能够更加快捷、更加简便地开发分布式、支持事务的、安全的和可移植的Java应用系统。 ①Java语言编写的 ②服务器端企业级应用组件 ③可分布式部署的组件 ④一般用于封装企业应用的业务逻辑基于组件的开发,其规范颁布了一组明确的EJB容器和EJB组件之间的契约,实现可移植性。
JavaBean和EJB都是Bean,广义的JavaBean几乎覆盖所有的Bean(可重用组件),当然也可包括EJB,狭义的JavaBean(就是通常意义上的JavaBean)是一个简单的类,是一个基本的组件模型。通俗的说,JavaBean就是一个简单可重用组件,是客户端应用程序;而EJB是在JavaBean组件模型的基础上扩展出支持服务器组件的组件模型,是服务器端应用程序。
也就是说,JavaBean重在客户端应用,EJB重在服务器端应用。
JavaBean是EJB的基础,EJB是JavaBean的扩展,EJB比JavaBean复杂得多。
尽供你参考!EJB是sun的服务器端组件模型,**的用处是部署分布式应用程序,类似微软的.com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。
EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。
其特点包括**服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。 1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。
Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。 3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。
MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。 EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品.EJB是BEANS,BEANS是什么概念,那就是得有一个容纳她,让她可劲造腾的地方,就是得有容器.EJB必须生存在EJB容器中.这个容器可是功能强大之极!她首先要包装你BEAN,EJB的客户程序实际上从来就不和你编写的EJB直接打交道,他们之间是通过HOME/REMOTE接口来****的.它负责你的BEAN的所有的吃喝**睡,比如BEAN的持续化,安全性,事务管理… 一.什么是 EJB?一个技术规范:EJB 从技术上而言不是一种\”产品\”EJB 是一种标准描述了构建应用组件要解决的:可扩展 (Scalable)分布式 (Distributed)事务处理 (Transactional)数据存储 (Persistent)安全性 (Secure)二.Sun 对 EJB 的期望提供一个标准的分布的、基于 OO 的组件架构屏蔽复杂的系统级功能需求Write once, run anywhere与非 Java 应用之间的互*作能力兼容 CORBA 标准三.为什么选择 EJB?EJB 服务器完成\”繁杂\”的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制(类似于 4GL 语言设计的目标)支持事务处理多个业务*作同时成功,或全部失败可以通过在代码外的描述来定义事务处理级别可扩展性EJB 可以根据您应用的增长而扩展EJB 服务器往往还提供了负载均衡和安全性:由 EJB 服务器提供资源的访问权限控制四.EJB 架构为了满足架构的目标,规范中描述了服务器 (Server)容器 (Container)类 (Class) 和实例 (Instance)Home 和 Remote 接口客户端 (Client)五. 简化的编程模型关注于业务逻辑实现:EJB 负责生命周期 (lifecycle), 数据存储 (persistence), 事务处理语义 (transactional semantic), 安全(security), …通用的编程模型:各种服务的高层 APIJava 是其编程语言EJB( 业务逻辑代码 ) 表示了与特定商业领域(例如银行、零售等行业)相适应的逻辑。
它由运行在业务逻辑层的 enterprise bean 处理。一个 enterprise bean 可以从客户端接受数据,对它进行处理,并将其发送到企业信息系统层以作存储;同时它也可以从存储器获取数据,处理后将其发送到客户端应用程序。有三种类型的 enterprise beans:session beans、entity beans 和 message-driven beans。
Session bean 描述了与客户端的一个短暂的会话。当客户端的执行完成后,session bean 和它的数据都将消失;与之相对应的是一个 entity bean 描述了存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责 entity bean 数据的存储。Message-driven bean 结合了 session bean 和 Java 信息服务(JMS)信息**者的功能,它允许一个商业组件异步地接受 JMS 消息。 EJB3.0的介绍[编辑本段]由于EJB2.0的复杂性,在Spring和Hibernate等轻量级框架出现后,大量的用户转向了,在大家的呼声中,EJB3.0规范终于发布了。
期待已久的EJB3.0规范在终于发布了。在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问 bean上下文的新方法和运行时环境等等。作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系。开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好。
EJB大概是J2EE架构中**一个没有兑现其能够简单开发并提高生产力的组建。EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性。EJB3.0减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及O/R映射模型的复杂性。 在本文中,我首先会介绍EJB3.0中几个主要的改变。
它对进一步深入了解EJB3.0是非常重要的。随后,我会从更高的层面来描述已经被提交到EJB3.0规范中的细节,并一个个的讲解新的规范中的改变:实体Bean,O/R映射模型,实体关系模型和EJB QL(EJB查询语言)等等。 背景 EJB3.0中两个重要的变更分别是:使用了Java5中的程序注释工具和基于Hibernate的O/R映射模型。
Java5中的元数据工具 Java5(以前叫J2SE1.5或Tiger) 中加入了一种新的程序注释工具。通过这个工具你可以自定义注释标记,通过这些自定义标记来注释字段、方法、类等等。这些注释并不会影响程序的语义,但是可以通过工具(编译时或运行时)来解释这些标记并产生附加的内容(比如部署描述文件),或者强制某些必须的运行时行为(比如EJB组件的状态特性)。
注释的解析可以通过源文件的解析(比如编译器或这IDE工具)或者使用Java5中的APIs反射机制。注释只能被定义在源代码层。由于所有被提交到 EJB3.0草案中的注释标记都有一个运行时的RetentionPolicy,因此会增加类文件占用的存储空间,但这却给容器制造商和工具制造商带来了方便。 Hibernate 目前Hibernate非常受欢迎,它是开发源代码的Java O/R映射框架,目的是把开发人员从繁琐的数据持久化编程中解脱出来。
它也有一个标准的HQL(Hibernate 查询语言)语言,你可以在新的EJB QL中看到它的影子。Hibernate在处理如数据查询、更新、连接池、事务处理、实体关系处理等方面非常简单。 概览 在已经提交的EJB3.0规范中主要涉及两个方面的改变: 1. 一套以注释为基础的EJB编程模型,再加上EJB2.1中定义的通过部署描述符和几个接口定义的应用程序行为。
2. 新的实体Bean持久化模型,EJBQL也有许多重要的改变。 还有一些有关上述的提议,比如:一个新的客户端编程模型,业务接口的使用以及实体Bean的生命周期。请注意EJB2.1编程模型(包括部署描述符和home/remote接口)仍然是有效的。新的简化模型并没有完全取代EJB2.1模型。
EJB注释 EJB规范组织一个重要的目标是减轻原始代码的数量,并且他们为此给出了一个完美而简介的办法。在EJB3.0的里,任何类型的企业级 Bean只是一个加了适当注释的简单Java对象(POJO)。注释可以用于定义bean的业务接口、O/R映射信息、资源引用信息,效果与在 EJB2.1中定义部署描述符和接口是一样的。
在EJB3.0中部署描述符不再是必须的了;home接口也没有了,你也不必实现业务接口(容器可以为你完成这些事情)。 比如,你可以使用@Stateless注释标记类把Java类声明为一个无状态回话bean。对于有状态回话bean来说,@Remove注。
它太长了,我简短的来说比如做一个工程就和盖房子,如果,你会java,那么你就拥有了基本的技能,一步一步累砖,总能把房子盖好但是EJB就是一个框架,盖房子的时候,先有这个框架,然后你根据这个框架去累砖,房子就会盖的又快又好。java是基础,EJB是在java上发展出来的模型,框架。