EJB学习(四)——Enterprise Bean(企业Bean)和Entity Bean(实体Bean)

    一、为什么使用EJB ?

企业Bean运行在EJB容器中,企业Bean实际上就是一个封装了业务逻辑的Java类,那么我们为什么要使用EJB呢 ?

1.最重要的原因:分布式。简要的说,分布式可以将分布在各处的资源综合利用,但是对于用户来说展现的是一个统一的整体;分布式可以动态分配任务,分散物理的和逻辑的资源,从而提高执行效率;分布式技术可以避免由于单个节点失效而使整个系统崩溃的危险。

2.分布式对象之间的事务支持,RMI(Remote
Method Invocation,远程方法调用)不支持事务。

3.支持不同的客户端,只要少量代码,就可以让远程客户端访问到企业Bean。

    二、EJB的基本分类

    1.Session Bean

即会话Bean,可以执行业务逻辑操作,如注册用户、订单登记等。

问:什么是会话?

答:即从客户端获得EJB对象开始,然后调用EJB的方法(可以多次),直到客户端声明周期结束或客户端释放了EJB对象为止,称为一次会话。

问:Stateful Session Bean 和Stateless
Session Bean有什么区别?

答:Stateful
Session Bean 即有状态的Session Bean,Stateless Session Bean即无状态的Session Bean,所谓的有状态和无状态,是由Session Bean的成员变量决定的。

·Stateful Session Bean:即EJB能够为同一个客户端在多次请求(方法调用)之间保持状态信息。

·Stateless Session Bean:并非是说EJB不能存在状态,而是说EJB容器不会对EJB的状态做管理。

简言之,有状态的Session Bean,即客户端每次请求都会创建一个新的对象;

无状态的Session Bean,就是客户端每次请求都访问的一个对象。

2.Message Driven Bean

    Java 消息服务( Java Message
Service, 简称 JMS) 是企业级消息传递系统, 紧密集成于 Jboss Server 平台之中。企业消息传递系统使得应用程序能够通过消息的交换与其他系统之间进行通信。

消息驱动 Bean(MDB)是设计用来专门处理基于消息请求的组件。 它是一个异步的无状态 Session Bean, 客户端调用 MDB 后无需等待, 立刻返回,
MDB 将异步处理客户请求。

    3.Entity Bean

持久化是位于 JDBC 之上的一个更高层抽象。持久层将对象映射到数据库,以便在查询、 装载、 更新, 或删除对象的时候, 无须使用像 JDBC 那样繁琐的 API。在 EJB 的早期版本中,持久化是 EJB 平台的一部分。从 EJB 3.0开始, 持久化已经自成规范,
被称为 Java Persistence API。Java Persistence API 定义了一种方法,可以将常规的普通 Java 对象(有时被称作 POJO)映射到数据库。 这些普通 Java 对象被称作 Entity Bean。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 02:42:13

EJB学习(四)——Enterprise Bean(企业Bean)和Entity Bean(实体Bean)的相关文章

持久化API(JPA)系列(五)控制实体Bean的生命周期

上篇文章<持久化API(JPA)系列(四)管理器EntityManager--执行数据库更新>中我们讲解了使用实体管理器的各种函数操作数据库的方法. 本文主要讲:控制实体Bean的生命周期. 与会话Bean类似,实体Bean也有自己的生命周期,分别对应不同的状态. 下面我们首先来讲解实体Bean的状态和生命周期事件: 1.实体Bean生命周期的4种状态 2.实体Bean的事件: @PostLoad @PrePersist和@PostPersist @PreUpdate和@PostUpdate

EJB学习(六)——Entity Bean 和 Hibernate的比较

在学习EJB的Entity Bean这一块的时候,感觉它和Hibernate是一样一样的,把当初总结Hibernate的导图找了出来,经过对比,感觉两个几乎是差不错的,下面就在Hibernate的基础上理解下EJB的Entity Bean. 我们通过上面的导图来对Entity Bean和Hibernate做个比较: 1.Hibernate中的全局配置文件hibernate.cfg.xml和Entity Bean中的persistence.xml Hibernate的hibernate.cfg.x

EJB初级篇--EJB组件之实体Bean

上文我们对会话Bean的生命周期和两个子类型(有状态会话Bean和无状态会话Bean)进行了详细解说,本篇博文中我们继续说说EJB组件中的实体Bean. 其实实体Bean就是一个加了注释符(@Entity)的简单java对象(POJO),实体关系和O/R映射也是通过注释符来定义的,并且提供了几种不同的数据库操作规范.一旦被EntityManager访问,它就成为了一个持久化对象,我们就可以像以前使用Hibernate一样来使用实体对象了. 下图是实体Bean的内容结构图,方便我们宏观的了解实体B

J2EE的十三个技术——EJB之实体Bean

概述: 实体Bean与会话Bean不同,实体Bean是持久的,即使应用程序结束,它仍然存在.它允许共享访问,具有主键. 组成: 1)本地(Local)接口 本地访问EJB,只有在EJB与客户在同一个应用的情况下才可以使用.使用时,它可以与远程接口同时使用. 它可以优化访问EJB,绕过了RMI. 2)远程(Remote)接口 与本地接口最大的不同在于远程接口可以从任何地方访问. 命名: 如果只使用local或Remote接口之一,可使用正常名称.例如HelloWorld和HelloWorldHom

我的EJB学习历程

http://blog.csdn.net/sinapaper/archive/2004/06/28/28659.aspx http://blog.csdn.net/sinapaper/archive/2004/06/29/29634.aspx http://blog.csdn.net/sinapaper/archive/2004/06/30/30538.aspx http://blog.csdn.net/sinapaper/archive/2004/07/01/31231.aspx http:/

EJB学习随手笔记

名词: 注解方式: @persistenceContext:持续.存留:环境.上下文: @Stateless: 无状态(无权的) @Remote:  远程接口 一.EJB接口 remote和local的? 二.(Enterprice JavaBeans )EJB基础知识: ①EJB是一个用于分布式业务应用的标准服务端组件模型.采用EJB架构编写的应用是可伸的.事务性的.多用户安全的.一次编写这些应用, 然后部署在任何支持EJB规范的服务器平台,如:JBOSS/WEBLOGIC. ②EJB定义了三

SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBatis框架的学习(六)——MyBatis整合Spring.本文我再来讲SpringMVC和MyBatis整合开发的方法,这样的话,Spring.MyBatis和SpringMVC三大框架的整合开发我们就学会了.这里我使用的Spring是Spring4.1.3这个版本(SpringMVC自然也是这个版本),MyBatis是MyBatis3.2.7这个版本. 为了更好的学习SpringMVC和MyBatis整合开发的方法

Jetty学习四:部署到Jetty

Web应用的框架 标准Jetty发布版本能部署标准servlet Spec Web应用和Jetty内部ContextHandler部署描述符,或者两者的一个混合. Web应用是可部署的动态(servlets.filters.jsps.等等)和静态内容.支持库.和绑定到特定上下文路径的描写性的元数据的集合. 格式和布局最终都是通过Servlet Spec定义,你可以查阅官方Servlet Spec文档获取关于Web应用布局和结构的更多细节,这里将给出一个基本的轮廓. Web应用能被捆绑到一个单个的

EJB_开发单表映射的实体bean

开发单表映射的实体bean 实体bean 它属于java持久化规范(JPA)里的技术,实体bean通过元数据在Javabean和数据库表之间建立起映射关系,然后Java程序猿就能够随心所欲的使用面向对象的编程思想来操纵数据库. JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,眼下实现的JPA规范的主流产品有Hibernate.TopLink和OpenJPA,在JBoss中採用了Hibernate 作为其持久化实现产品. 加入JPA的配置文件persistence.xml 依据JP

持久化API(JPA)系列(三)实体Bean的开发技术-建议与数据库的连接

在EJB 2.x中,EJB有3种类型的Bean,分别是会话Bean(Session Bean).消息驱动Bean(Message-Driven Bean)和实体Bean(Entity Bean). 随着EJB 3的推出,EJB2.x中的实体Bean逐渐被JPA规范所替代,JPA不仅能在EJB环境中使用,而且能在Java SE.Java EE环境中使用,相对于EJB 2.x中的实体Bean,它的使用范围更广. 但这里我们仍然将其称做实体Bean. 与会话Bean和消息驱动Bean类似,新的实体Be