博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PO/VO/DTO/POJO 以及 JavaBean 介绍
阅读量:5929 次
发布时间:2019-06-19

本文共 1472 字,大约阅读时间需要 4 分钟。

hot3.png

无论是在实际开发过程中,还是阅读各种技术书籍,PO/VO/DTO/POJO 以及 JavaBean 都是相对的高频词汇,因此有必要对它们各自的含义以及相互间的区别有一个清晰的认识和理解。 PO /ENTITY:persistent object 持久对象1 .有时也被称为 Data 对象,对应数据库中的 entity,可以简单认为一个 PO 对应数据库中的一条记录。2 .在 hibernate 持久化框架中与 insert/delet 操作密切相关。3 .PO 中不应该包含任何对数据库的操作。 VO :value object 值对象 / view object 表现层对象1 .主要对应页面显示(web 页面 /swt、swing 界面)的数据对象。2 .可以和表对应,也可以不,这根据业务的需要。注 :在 struts 中,用 ActionForm 做 VO,需要做一个转换,因为 PO 是面向对象的,而 ActionForm 是和 view 对应的,要将几个 PO 要显示的属性合成一个 ActionForm,可以使用 BeanUtils 的 copy 方法。DTO (TO) :Data Transfer Object 数据传输对象1 .用在需要跨进程或远程传输时,它不应该包含业务逻辑。2 .比如一张表有 100 个字段,那么对应的 PO 就有 100 个属性(大多数情况下,DTO 内的数据来自多个表)。但 view 层只需显示 10 个字段,没有必要把整个 PO 对象传递到 client,这时我们就可以用只有这 10 个属性的 DTO 来传输数据到 client,这样也不会暴露 server 端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为 VO。 POJO :plain ordinary java object 用这个名字用来强调它是一个普通 java 对象,而不是一个特殊的对象一个中间对象,可以转化为 PO、DTO、VO。1 .POJO 持久化之后 ==〉PO(在运行期,由 Hibernate 中的 cglib 动态把 POJO 转换为 PO,PO 相对于 POJO 会增加一些用来管理数据库 entity 状态的属性和方法。PO 对于 programmer 来说完全透明,由于是运行期生成 PO,所以可以支持增量编译,增量调试。)2 .POJO 传输过程中 ==〉DTO3 .POJO 用作表示层 ==〉VODTO 和 VO 都应该属于它, 在实际开发中,可能只有 PO(Entity) 和 VO, 在需要 DTO 的时候 VO 充当了 DTO 的角色,如果 VO 的字段 A 在数据库中不存在 (即不需要从数据库中取值),则查询的时候可以随便赋一个值给字段 A。 JavaBean 是一种 JAVA 语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:1、这个类必须有一个公共的缺省构造函数。2、这个类的属性使用 getter 和 setter 来访问,其他方法遵从标准命名规范。3、这个类应是可序列化的。 因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把 JavaBean 看作遵从特定命名约定的 POJO。 简而言之,当一个 Pojo 可序列化,有一个无参的构造函数,使用 getter 和 setter 方法来访问属性时,他就是一个 JavaBean

转载于:https://my.oschina.net/u/3136970/blog/872052

你可能感兴趣的文章
浅谈JavaScript中的事件循环机制
查看>>
ApacheCN 翻译活动进度公告 2019.2.18
查看>>
10分钟了解Pandas基础知识
查看>>
Celery中文翻译-Application
查看>>
git 常用命令
查看>>
力扣(LeetCode)357
查看>>
react中使用css的7中方式(应该是最全的)
查看>>
看板中的WIP限制思想
查看>>
颠覆世界的新技术:区块链
查看>>
为什么编程语言的都要定义数据类型
查看>>
Spring MVC常用客户端参数接收方式
查看>>
阿里云ARMS重磅推出小程序监控,助力小程序稳定运行
查看>>
初识Hibernate
查看>>
工作三年,我要如何提升Java技术 | 粉丝提问
查看>>
Java001-流行的编程语言Java
查看>>
阿里开发者们的第17个感悟:无细节不设计,无设计不架构
查看>>
React-防止内存泄漏处理
查看>>
Understand .sync in Vue
查看>>
2018年IT界规模最大裁员,作为程序员的你慌了吗?
查看>>
dependencies 和 devDependencies 的异同
查看>>