JAVA vo pojo javabean dto区别
2015-10-30 13:33
417 查看
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。 VO即value object值对象 主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。 DTO (经过处理后的PO,可能增加或者减少PO的属性): Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。 POJO(POJO是一种概念或者接口,身份及作用随环境变化而变化) : POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口 plain ordinary java object 简单java对象 即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。 POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。 一个POJO持久化以后就是PO。 直接用它传递、传递过程中就是DTO 直接用来对应表示层就是VO
JavaBean: 先说JavaBean,JavaBean更多的是一种规范,也即包含一组set和get方法的Java对象。
POJO: 普通的Java对象,对于属性一般实现了JavaBean的标准,另外还可以包含一些简单的业务逻辑(方法)。
PO: POJO在持久层的体现,对POJO持久化后就成了PO。PO更多的是跟数据库设计层面相关,一般PO与数据表对应,一个PO就是对应数据表的一条记录。
DAO: PO持久化到数据库是要进行相关的数据库操作的(CRUQ),这些对数据库操作的方法会统一放到一个Java对象中,这就是DAO。
BO: POJO在业务层的体现,对于业务操作来说,更多的是从业务上来包装对象,如一个User的BO,可能包括name, age, sex, privilege, group等,这些属性在数据库中可能会在多张表中,因为每一张表对应一个PO,而我们的BO需要这些PO组合起来(或说重新拼装)才能成为业务上的一个完整对象。
VO(Value Object/View Object): POJO在表现层的体现。 当我们处理完数据时,需要展现时,这时传递到表现层的POJO就成了VO。它就是为了展现数据时用的。
DTO(Data Transfer Object): POJO在系统间传递时。当我们需要在两个系统间传递数据时,一种方式就是将POJO序列化后传递,这个传递状态的POJO就是DTO。
相关文章推荐
- 基于Mybatis+Spring+SpringAOP实现Mybatis多数据源切换
- Java类加载器实现外在参数配置
- spring自带的定时任务功能,基于注解和xml配置(一)
- SpringAOP+注解+反射实现日志功能
- Java基础知识系列之配置Log4j(很详细)
- Java基础知识系列之注解基本概念
- Java基础知识系列之注解解析器
- Java基础知识系列之注解
- Java基础知识系列之反射
- spring组件扫描<context:component-scan/>使用详解
- Mybatis系列之-Mybatis3.x与Spring4.x整合
- EasyUI-SpringMVC + EasyUI 异步树 (可借鉴)
- Mybatis中javaType和jdbcType对应和CRUD例子
- Java模板引擎FreeMarker系列之十二freemarker大于,小于 gt,lt 的用法
- Java模板引擎FreeMarker系列之十一list下标、索引、长度、初始元素、最后一个元素的获取及应用
- Java模板引擎FreeMarker系列之九Freemarker的内置函数及用法
- Java模板引擎FreeMarker系列之八FreeMarker模板包含及名称空间
- Java模板引擎FreeMarker系列之七FreeMarker四种变量的用法
- Java模板引擎FreeMarker系列之六FreeMarker自定义指令
- Java模板引擎FreeMarker系列之五FreeMarker集合(List、Map)