JavaBean,EJB,POJO汇总说明

原创 2016年08月31日 01:29:23

什么是JavaBean?

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。——百科定义

JavaBean特性


  1. 有一个public默认构造器(例如无参构造器,)
  2. 属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
  3. 需要序列化。这个是框架,工具跨平台反映状态必须的。实现java.io.Serializable 接口

JavaBean最初是为Java GUI的可视化编程实现的.你拖动IDE构建工具创建一个GUI 组件(如多选框),其实是工具给你创建java类,并提供将类的属性暴露出来给你修改调整,将事件监听器暴露出来.《java 编程思想(第四版)》

补充:JavaBean最初是为定义可重用的应用组件而设计的,但当时他们却主要用作模型来构建用户界面窗口部件(user interface widgets)。

PO(plain object):用于持久化时(例如保存到数据库或者缓存);
VO(value object):用于前端展示使用(例如放置到JSP中解析或者给前端传递数据)
DTO(data transfer object):用于接口互相调用返回,数据传输(例如很多接口调用返回值或消息队列内容);
特别地,由于class不同,复制时一般推荐
https://github.com/springside/springside4/wiki

EJB

在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。 然后有提高了协议要求,就出现了Enterprise Bean。EJB在javabean基础上又提了一些要求,当然更复杂了。

EJB的特性

一个技术规范:EJB 从技术上而言不是一种”产品”
EJB 是一种标准描述了构建应用组件要解决的:
可扩展 (Scalable)
分布式 (Distributed)
事务处理 (Transactional)
数据存储 (Persistent)
安全性 (Secure)

EJB的定义

EJB是Enterprise Java Bean 企业级JavaBean
EJB是遵守JavaBean规范的,也可以说是更加具体的JavaBean
EJB又分为SessionBean(会话Bean)、EntityBean(实体Bean)、MessageDriverBean(消息驱动Bean)
以下是它的定义:
EJB是一种服务器端的组件架构,它使得人们能够更加快捷、更加简便地开发分布式、支持事务的、安全的和可移植的Java应用系统。
①Java语言编写的
②服务器端企业级应用组件
③可分布式部署的组件
④一般用于封装企业应用的业务逻辑
基于组件的开发,其规范颁布了一组明确的EJB容器和EJB组件之间的契约,实现可移植性。
EJB组件在EJB容器中运行,EJB组件包含:EJB bean类、
EJB组件接口(远程接口)、EJB Home接口

POJO

POJO:“Plain Old Java Object”
EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的javabean,什么是普通,就是和EJB对应的。
总之,区别就是,你先判断是否满足javabean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。

POJO与JavaBean的区别

POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter、setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hibernate框架,有一个关联的xml文件,使对象与数据库中的表对应,对象的属性与表中的字段相对应。

POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。

POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。

多说一点:vo

vo有两种说法,一个是viewObject,一个是valueObject..就拿前者来说吧,它只负责封装页面传递过来的数据,这和PO有些不同..就拿struts1来说,ActionForm就是一个典型的viewObject. 而valueObject是页面与页面之间的传递时保存值的对象….总的来说,PO是最终传给BO以及BO传个DAO的东西,他很多情况下与我们真正的数据库表想对应.而viewObject是一个页面上提交后的数据,不一定完全和PO的属性相同
实际上没区别 他们的功能都一样 不过他们使用地点不一样

po是在持久层所使用的 用来封装原始数据 而VO则主要在视图层活动 两个JAVABEAN的使用范围不同 假如你从数据库取出来的原始数据 你可以通过业务层将数据进行封装 再通过VO发到页面上去

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

相关文章推荐

JAVABEAN EJB POJO区别

1、POJO     POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演...

JavaBean,POJO,EJB详解

1、POJO     POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的...

JAVABEAN EJB POJO区别

1、POJO     POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的...

POJO EJB JAVABEAN 的区别

1、POJOPOJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来的...

JAVABEAN EJB POJO区别

JAVABEAN EJB POJO区别 1、POJO     POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca P...

java基础--JavaBean、POJO、DAO、EJB

1、POJO     POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时...

Web---JSP注册技术的演绎(3代)-JSP/EJB/Servlet/POJO/JavaBean

我们可以这么理解JSP注册技术的发展过程: 第一代JSP技术:纯JSP开发。 第二代JSP技术:JSP+EJB开发。 (EJB简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。) ...

JAVABEAN EJB POJO区别

JAVABEAN EJB POJO区别

什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?

JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 1、这个Java类必须具有一个无参的构造函数; 2、属性私有化; 3、私有化的属性必须通过public类型的方法暴露给其他程序,并...

POJO、JavaBean、EJB的区别

POJO、JavaBean、EJB的区别
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)