首页 > 其他分享 >VO、DTO、DO、PO初步认知

VO、DTO、DO、PO初步认知

时间:2022-08-31 15:11:26浏览次数:66  
标签:DO DTO service Object VO controller PO

VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载。可以泛指用于展示层与服务层之间的数据传输对象。
DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

通常来说,一般使用到最多的是VO、DTO、PO。

VO,例子:
在controller层使用,用于返回VO数据给展示层。

 public UserDetailVo detail(@RequestBody String json) {
  ...  
}

DTO,例子。
在controller层传输DTO数据给service层处理,service层返回VO数据。

//controller层
service.userDetail(queryDto)

//service层
UserDetailVo userDetail(CustomerQueryDto dto);

三者可以互相转换,可以使用Beanutils.copyProperties来进行。

借鉴:https://www.cnblogs.com/qixuejia/p/4390086.html

标签:DO,DTO,service,Object,VO,controller,PO
From: https://www.cnblogs.com/chandol/p/16642990.html

相关文章

  • erlang的一次docker部署尝试
    背景最近需要在arm64和x86平台上,多个系统版本上部署,被环境问题折磨的焦头烂额。因为erlang本身是基于C语言的,基于不同的gcc环境编译的包不能很好的运行。docker用于解决开......
  • Windows 资源管理器 CPU100%
    Windows资源管理器CPU100%win+R打开运行框并输出:services.msc点击确定打开服务;将服务中的ProblemReportsControlPanelSupport、HomeGroupListener、HomeGroupP......
  • windows使用/服务(4)tomcat7启动报错:The JRE_HOME environment variable is not defined
    参考文档:启动tomcat时报错:TheJRE_HOMEenvironmentvariableisnotdefinedcorrectly的解决方案报错:PSD:\jbpro\tomcat\bin>.\catalina.batrunTheJRE_HOMEe......
  • 区块相隔虽一线,俱在支付同冶熔,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask区块
    最近几年区块链技术的使用外延持续扩展,去中心化的节点认证机制可以大幅度改进传统的支付结算模式的经营效率,降低交易者的成本并提高收益。但不能否认的是,区块链技术也存在......
  • Windows 下将 Nginx 设置成服务
    0、需求背景每次启动Nginx都要去到Nginx安装目录下寻找redis-server.exe文件点击,很是麻烦。并且要命令行启动,一般解决方案可能是批处理文件,但是仍要点击。假如确定......
  • markdown快速入门
    首先简单介绍下OneNote怎么实现markdown---onemark,神器 OneMark采用 GitHub偏好的Markdown 语法,除了基础的标题、列表、引用,还支持任务列表、代码块、LaTeX、toc等......
  • docker 容器修改保存
    修改的容器保存命令 语法:dockercommit[OPTIONS]容器ID[REPOSITORY[:TAG]]OPTIONS说明:-a:提交的镜像作者; -c:使用Dockerfile指令来创建镜像; -m:提......
  • CentOS Docker 安装
    CentOSDocker安装一、docker安装1、更新yum云仓库           updatayum2、一键安装docker           curl-sSLhttps://get.daocloud.io/d......
  • mac使用touchid解锁sudo
    打开“终端”,执行以下命令:sudosed-i".bak"'2s/^/authsufficientpam_tid.so'$'\n/g'/etc/pam.d/sudo然后输入您的管理员密码,回车,大功告成了!不用重启哦~......
  • 在docker swarm中,如何对一个service进行滚动升级?
    滚动升级,一定听过,就比如说,现在有个服务运行了多个实例,想要对这个服务进行升级(比如:更换镜像),应该怎么弄呢? 接下来的部分,咱们一起来看下。 在本文中,做滚动升级的一个场......