`
xjlnjut730
  • 浏览: 56508 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaBean,Entity Bean,Enterprise Bean等Bean以及POJO的含义

阅读更多
我的整理与总结:
一、对于java bean,就是一个java模型组件,他为使用java类提供了一种标准的格式,在用户程序和可视化管理工具中可以自动获得这种具有标准格式的类的信息,并能够创建和管理这些类。
java bean 可以使应用程序更加面向对象,可以把数据封装起来,把应用的业务逻辑和显示逻辑分离开,降低了开发的复杂程度和维护成本!
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。
从编程的角度,也就是最基本的实现了get跟set方法的类。
二、Enterprise Bean,也就是Enterprise JavaBean(EJB),是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的状态和数据库同步。
      Java Persistence 1.0规范中的entity bean仅作为普通Java对象(POJO)来使用,并且是映射到关系数据库表的。与其他类型的EJB不同,entity bean可以被分配,序列化,并像任何其他POJO那样通过网络被发送出去。
     3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
    三、Enterprise Bean 与 JavaBean的区别
最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)。
  JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。
JavaBean 是使用 java.beans 包开发的,它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件。JavaBean 是进程内组件。Enterprise Bean 是使用 javax.ejb 包开发的,它是标准 JDK 的扩展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台机器上跨几个地址空间运行的组件。因此 Enterprise Bean 是进程间组件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 则用作分布式商业对象.
  四、POJO一个正规的Java对象(不是JavaBean,EntityBean等),也不担当任何的特殊的角色,也不实现任何Java框架指定的接口。POJO是一个简单的、正规Java对象,它包含业务逻辑处理或持久化逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
    POJO应该不是我们开始认为的JavaBean,当然更不是EJB,它不应该依赖于框架即继承或实现某些框架类或接口。例如:Struts1中的Action和ActionForm当然不属于POJO了,而在Struts2中的Action由于可以不继承任何的接口,所以在这种情况下Action是POJO,但是Struts2中的Action也可以继承ActionSupport类就不再属于POJO了。POJO里面是可以包含业务逻辑处理和持久化逻辑,也可以包含类似与JavaBean属性和对属性访问的set和get方法的。
    在百度百科上的解释是:简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
    POJO是Plain Ordinary Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
   
    而我的理解是:POJO跟Entity Bean的区别仅在于Entity Bean必须要映射到数据库里,而POJO仅用于业务逻辑,当然也可以映射到数据库中,也就是Entity Bean是POJO的特例,当然它们是不同的标准中的,个人认为Entity Bean是基于POJO的,不知道对不对?


参考资料:
http://baike.baidu.com/view/725111.htm
http://www.diybl.com/course/3_program/java/javashl/200845/108451.html
http://www.wang48.com/jishubaodianview/?jsd_id=10969
http://baike.baidu.com/view/209585.htm
http://baike.baidu.com/view/183175.htm
分享到:
评论
5 楼 xjlnjut730 2009-06-23  
crabboy 写道
pojo被成为简单java对象,是一种符合javaBean规范的纯java对象。简单在不包含复杂的业务逻辑,一般只有对象属性的get和set方法。javabean属于框架范畴,是一种组件模型,通过javaBean可以无限地扩充程序的功能,目的是解决代码复用和易维护性等问题。


哦,有点了解了~那么除了pojo这样的简单Java对象之外,还有是哪些符合JavaBean规范的呢?
4 楼 crabboy 2009-06-22  
pojo被成为简单java对象,是一种符合javaBean规范的纯java对象。简单在不包含复杂的业务逻辑,一般只有对象属性的get和set方法。javabean属于框架范畴,是一种组件模型,通过javaBean可以无限地扩充程序的功能,目的是解决代码复用和易维护性等问题。
3 楼 xjlnjut730 2009-06-22  
xjlnjut730 写道
crabboy 写道
感觉没有说清楚。特别是javabeans 和pojo的区别。


嗯,其实我对这个也不太清楚,只是大概说了一下POJO跟Entity Bean的区别,这篇一半是转载,一半是我自己的一些想法,关于JavaBeans跟pojo的区别,还请指点一下~ 

2 楼 xjlnjut730 2009-06-22  
crabboy 写道
感觉没有说清楚。特别是javabeans 和pojo的区别。


嗯,其实我对这个也不太清楚,只是大概说了一下POJO跟Entity Bean的区别,这篇一半是转载,一半是我自己的一些想法,关于JavaBeans跟pojo的区别,还请指点一下~
1 楼 crabboy 2009-06-21  
感觉没有说清楚。特别是javabeans 和pojo的区别。

相关推荐

    EntepriseJavaBean设计实务

    例如,减少了XML配置,增加了注解,以及引入了POJO(Plain Old Java Object)风格的bean,降低了EJB的使用门槛。 在"Enterprise JavaBean设计实务"中,你可能会学到如何有效地利用这些技术来设计和实现符合企业级...

    实战EJB_CN(推荐)

    EJB规范定义了三种主要的组件类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans),它们分别用于处理业务逻辑、持久化数据和处理消息。 ### 1. 会话Bean 会话Bean...

    J2EE面试资料.rar

    4. **EJB(Enterprise JavaBeans)**:分为会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。理解它们的角色,尤其是无状态会话bean、有状态会话bean和EJB 3.0引入的无...

    Ejb学习文档

    - **采用POJO模型**:实体Bean采用了POJO模型,即一个简单的JavaBean就能成为一个Entity Bean,无需依赖容器即可运行和测试。 - **O/R Mapping技术**:全面采用O/R Mapping技术来实现数据库操作,提高了灵活性和效率...

    J2EE5.0 API

    - **注解驱动**:EJB 3.0允许使用注解(如`@Entity`, `@Stateless`, `@PersistenceContext`等)来声明bean的行为,取代了XML配置。 - **实体bean的POJO化**:实体bean不再需要继承特定的接口,而是可以直接用普通的...

    JavaEE教程

    3. **EJB(Enterprise JavaBeans)**:企业级JavaBean,包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans),用于实现业务逻辑和分布式服务。现在,EJB3.x版本大大...

    ejb内部资参

    Enterprise JavaBean (EJB) 是Java企业版(Java EE,以前称为J2EE)的核心组成部分,主要用于构建可扩展的企业级应用程序。EJB 提供了一种标准化的方式来开发和部署服务器端组件,确保它们可以在不同的平台上运行。...

    javaEE基本内容

    EJB组件分为了会话Bean(Session Beans)、消息驱动Bean(Message-Driven Beans)和实体Bean(Entity Beans),它们提供了声明式的事务管理、安全性、线程管理和资源访问等服务。 3. Java消息服务(Java Message ...

    JavaEE5的资源包

    实体Bean现在可以基于POJO(Plain Old Java Object),并且支持注解配置,如`@Entity`,`@Stateless`,`@Stateful`等。 5. **Servlet 2.5** 和 **JSP 2.1**:这两个更新提升了Web容器的性能和功能,使得动态网页的...

    JPA详细文档(JPA 批注参考)

    Java 持续性API(JPA)是Java EE 5和Enterprise JavaBean(EJB)3.0规范的一部分,其主要目标是简化EJB的持久化操作,并提供了一种对象关系映射(ORM)机制,允许开发者以声明式方式定义Java对象如何映射到关系...

Global site tag (gtag.js) - Google Analytics