前言

参考文章链接
总结一下DTO的概念和基础使用

DTO 介绍

DTO本身不是业务对象,他是根据UI需求进行设计的。简单来说Model面向业务,我们是通过业务来定义Model的。
而DTO是面向UI,通过UI的需求来定义的,通过DTO我们实现了表现层与Model层之间的解耦,表现层不引用Model。如果开发过程中我们的模型变了,而界面没变,我们只需改Model而不需要去改动表现层。

DTO 代码例子

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_user")
public class User implements Serializable {private static final long serialVersionUID = 1L;@TableId(value = "id", type = IdType.AUTO)private Long id;private String phone;private String password;private String nickName;private String icon = "";private LocalDateTime createTime;private LocalDateTime updateTime;}

我们原来的user类
面向Model
如果前端只需要显示用户名
那我们不应该传递密码等敏感数据

应该定义面向UI的DTO
而且当我们业务更改 后端model层新加属性 比如address等
不需要更改面向UI的DTO 实现了一定解耦

于是我们使用DTO
好处
1 实现了一定视图层和Model层解耦
2 可以防止敏感信息泄露
3 如果使用session 存取较少的数据可以节省内存空间
使用DTO

@Data
public class UserDTO {private Long id;private String nickName;private String icon;
}

DTO概念的了解和使用相关推荐

  1. 领域驱动模型VO,BO,PO,DO,DTO概念及其区别

    本文来说下领域驱动模型VO,BO,PO,DO,DTO 概念及其区别 文章目录 概述 概念以及区别 本文小结 概述 随着编程工业化水平的不断加深,各种编程模型层出不穷(比如MVC,MVP等等),伴随着这 ...

  2. 领域驱动模型VO,BO,PO,DO,DTO概念介绍和区别

    先来一张图,有一个直观地感受: 概念介绍 VO(View Object)视图对象 用于展示层(和控制层Controller共同属于表现层),它的作用是把某个指定页面(或组件)的所有数据封装起来.说白了 ...

  3. 真的有必要定义VO,BO,PO,DO,DTO吗?

    今天给大家带来一篇关于VO,BO,PO,DO,DTO的文章,阅读完这篇文章之后,希望大家对VO,BO,PO,DO,DTO有自己的见解. VO,BO,PO,DO,DTO 概念 在讲具体的概念之前,我们先 ...

  4. 合理使用DTO(Data Transfer Object)

    文章目录 1. DTO简介 2. 到底什么是DTO? 3. 将DTO用作POJO 4. Java 中使用DTO的例子 5. 反例: 滥用DTO 6. 小结 相关链接 DTO, 全称为 Data Tra ...

  5. 网上书城—登录、书籍管理

    前言: 登录模块涉及到的功能在jsp的时候其实就已经有写到过了,这边就不做过多的讲解代码意思了. 管理员模块,这边主要是书籍管理模块,涉及到了最基础增删改查. 目录 一.登录模块 1.主要功能: 2. ...

  6. Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

    PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了.通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理.可以 ...

  7. 浅析 VO、DTO、DO、PO 的概念、区别和用处!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/qixuejia/p/4390086 ...

  8. Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转)

    PO(bean.entity等命名): Persistant Object持久对象,数据库表中的记录在java对象中的显示状态 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作 ...

  9. map和foreach的区别和应用场景_浅析项目中常用的 VO、DTO、DO、PO的概念、区别和用处...

    概念: 模型: VO与DTO的区别 VO与DTO的应用 DTO与DO的区别 DTO与DO的应用 DO与PO的区别 DO与PO的应用 本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和P ...

最新文章

  1. RSA签名的PSS模式
  2. sql 使用视图的好处
  3. 北大图灵班本科生获STOC最佳论文奖!这个对标清华姚班的人才计划,正在频频交出答卷...
  4. gsea结果分析图怎么看_数据分析怎么做?看这篇就够了!
  5. 【学习笔记】低代码平台(LCAP:Low-Code Application Platform)
  6. python调用shell脚本
  7. 关闭openssh服务_关于redhat7的openssh漏洞升级修复方法
  8. python基于pillow库的简单图像处理
  9. vnc 序列号在哪输入_VNC Viewer Plus 1.2.3 注册机
  10. img 图片加载出错时 显示默认图片
  11. 全新微头像V2.1.8版全套iApp源码分享
  12. JavaWeb播放视频实现断点续传、分片上传
  13. Auto.js 支付宝 跳转意图
  14. python绘制缓和曲线_曲线标
  15. pyLDA系列︱gensim中的主题模型(Latent Dirichlet Allocation)
  16. windows安装memcached
  17. SQL Injection Bypassing WAF ——from DVWA ——2012-12-8
  18. 微软出了一个Python小白神器!
  19. Stratified Transformer复现和调试记录,ubuntu20复现S3DIS数据集(点云语义分割)
  20. Hadoop集群搭建(所需软件安装包已上传发布)

热门文章

  1. 数字病理切片的github处理链接
  2. 从17素材网上下载素材并运行
  3. 你的微信昵称正在暴露你的性格和状态,你知道吗?
  4. 亚马逊listing产品和竞品的销量查询方法
  5. Spark框架概括(Spark 是什么、Spark and Hadoop、Spark or Hadoop、Spark核心模块)
  6. 家庭太阳能发电,何时能告别“两极分化”?
  7. 21.拉格朗日中值定理柯西中值定理
  8. CSS中利用BootStrap框架引入glyphicon图标无法显示的解决方法
  9. b级计算机考试全名叫啥,大专英语B级全称是什么
  10. RESET - 把一个运行时参数值恢复为缺省值