entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分?
dao层:
DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。
service层:
Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。
Entity
最常用实体类,基本和数据库表一一对应,一个实体对应一张数据库表。
controler层
Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
Bo(business object)
代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是业务逻辑),这个对象可以包括一个或多个其它的对象。通过调用Dao方法,结合Po或Vo进行业务操作。
形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。
比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。
封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO转化成PO,才能进行数据的持久化,反之,从DB中得到的PO,需要转化成BO才能在业务层使用)。
关于BO主要有三种概念
1.只包含业务对象的属性;
2.只包含业务方法;
3.两者都包含。
在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要。
Vo(value object)
代表值对象的意思,通常用于业务层之间的数据传递,由new创建,由GC回收。
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象,然后用一个VO对象在控制层与视图层进行传输交换。
Po(persistant object)
代表持久层对象的意思,对应数据库中表的字段,数据库表中的记录在java对象中的显示状态,最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。Vo和Po,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。
Dto(data transfer object)
代表数据传输对象的意思
是一种设计模式之间传输数据的软件应用系统,数据传输目标往往是数据访问对象从数据库中检索数据
数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具任何行为除了存储和检索的数据(访问和存取器)
简而言之,就是接口之间传递的数据封装
表里面有十几个字段:id,name,gender(M/F),address,age,info……
页面需要展示三个字段:name,gender(男/女),age
DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构
Pojo(plian ordinary java object)
POJO持久化之后==〉PO
(在运行期,由Hibernate中的cglib动态把POJO转换为PO,PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。PO对于programmer来说完全透明,
由于是运行期生成PO,所以可以支持增量编译,增量调试。)
POJO传输过程中==〉DTO
POJO用作表示层==〉VO
PO 和VO都应该属于POJO。
Controller
代表控制层,主要是Action/Servlet等构成(Spring MVC则是通过@Controller标签使用)此层业务层与视图层打交道的中间层,负责传输VO对象和调用BO层的业务方法,
负责视图层请求的数据处理后响应给视图层。
View
代表视图层的意思,主要是指由JSP、HTML等文件形成的显示层。
所以实际项目中,一般都是这样应用的:
控制层(controller-action),业务层/服务层( bo-manager-service),实体层(po-entity),dao(dao),视图对象(Vo-),视图层(view-jsp/html)
entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分?相关推荐
- Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分 PO:持久对象 (persistent object),po(persiste ...
- java常见业务对象_Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分...
PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...
- PO/BO/VO/DTO/POJO/DAO/DO
文章目录 DO(Domain Object) DO(Data Object) PO VO BO DTO POJO DAO JavaBean EJB Entity 应用程序的分层设计 MVC 业务分层 ...
- PO VO BO DTO POJO DAO(转)
2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. 为了让新人快 ...
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋 ...
- JavaEE PO VO BO DTO POJO DAO 整理总结(转)
阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...
- JavaEE PO VO BO DTO POJO DAO 整理总结
阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...
- 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别
关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...
- Java学习笔记——实体类(ENTITY,VO,DTO,BO)
最近在写代码的时候,对于Entity.VO.DTO.BO的概念有些混淆,不太了解具体的用途以及作用,所以想梳理一下. 阿里巴巴Java开发手册中的分层领域模型规约: DO(Data Object):此 ...
最新文章
- 人工智能不仅仅是智能生活,还有失业问题!
- 极速理解设计模式系列【目录索引】
- java编写一个函数_请教如何用java编写一个函数图像生成的应用程序?谢谢!
- Linux下新手基本操作及技巧看图上路 (7)
- 基础编程题目集 6-6 求单链表结点的阶乘和 (15 分)
- nginx负载均衡实验笔记
- BugkuCTF web5
- python基础教程慕课_Python基础教程(6)--抽象
- 云计算的安全顾虑中不透明性影响云落地
- 追赶法求解三对角线性方程组的MATLAB程序
- 程序员想创业首先要突破自己三关(转)
- BZOJ 1878: [SDOI2009]HH的项链【莫队】
- Java实现简单的银行管理系统(最基本的功能/易上手)
- Total和Tellurian签署意向性协议,对Driftwood项目和2.5 mtpa LNG进行股权投资;就增加对Tellurian投资签署普通股购买协议
- ROS小车三轴全向轮底座运动学分析
- 网易历届笔试面试题整理大全
- thinkadmin搜索功能/下拉选项
- PlantUML 之时序图
- 一份应聘者所写的外链推广规划
- Arouter源码解析(二)——ASM和JavaPoet