程序员社区

JavaBean,EJB和Java对象(PO,VO,DTO,DAO)的理解

一般的业务分层为:视图层(VIEW),服务层(SERVICE),持久层(DAO)


PO (persistent object):持久对象

PO对象的属性是跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系PO也就是数据库中的表相映射的Java对象并且需要实现序列化接口,不包含任何对数据库的操作
最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。
PO生命周期:数据库中添加新数据时创建,删除数据库中数据时删除。并且它只能存活在一个数据库连接中,断开连接即被销毁。


VO(Value Object):值对象

用于返回给前端交互。传给前端的对象被称作VO(web层),和PO一样也是仅仅包含数据。但应抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。
VOPO的分装,与视图层交互。主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据。
VO生命周期:VOnew关键字创建的,由GC回收


DTO(Data Transfer Object):数据传输对象

数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,泛指用于展示层与服务层之间的数据传输对象。主要用于远程调用等需要大量传输对象的地方。

简单来说,当需要一个对象10个字段的内容,但这个对象总共有20个字段,我们不需要把整个PO对象全部字段传输到客户端,而是可以用DTO重新封装,传递到客户端。


DAO(Data Access Object):数据访问对象

是一个Sun的一个标准J2ee设计模式 .此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据 库资源中间。配合VO, 提供数据库的CRUD操作。


JavaBean

是可复用的Java组件,严格遵循Sun定义的规范要求,JavaBean是一个标准,开发者可以直接复用别人写好软件组件而不必理解它内部的工作机制。
JavaBean应该有下面几个特点:
1.类应该是public
2.属性应该private的,对于属性值的访问应该是要通过get(),set(),is()方法,is()是用于检查元素的值是否是Boolean的。
3.该类应该有一个无参的构造函数,元素值的初始化要通过set()方法。
4.这个类应该是实现了Serializable 接口,这个是为了持久化存储的需要

主要用途:可以用在 功能、处理、值、数据库访问和JSP中任何可以用Java代码创造的对象。


EJB(Enterprise JavaBeans):企业级的JavaBean

JavaBean是一个组件,而EJB就是一个组件框架。是J2EE服务器端的组件模型,EJB包括会话Bean(Session Bean)、实体Bean(Entity Bean)、
消息驱动Bean(Message Driven Bean)。EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品。

EJB深入了解可以参考
https://blog.csdn.net/xufei512/article/details/52703113

赞(0) 打赏
未经允许不得转载:IDEA激活码 » JavaBean,EJB和Java对象(PO,VO,DTO,DAO)的理解

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区