当前位置: 首页 > news >正文

DTO简单讲解

DTO 是什么

  • DTO(Data Transfer Object,数据传输对象):用于在各层/各系统之间“搬运数据”的简单对象,只承载字段,不包含业务逻辑。

解决什么问题

  • 层与层之间(Controller→Service、服务A→服务B)解耦字段结构
  • 只传必要数据,避免把数据库实体直接暴露到外部
  • 适配不同场景的入参/出参,便于校验、脱敏、转换

和常见对象的区别

  • Entity/PO:数据库实体,对应表结构
  • DTO:传输用的结构(接口入参/跨服务),无业务逻辑
  • VO:展示给前端/页面的视图对象(出参)
  • BO:领域内的业务对象(含业务含义/规则)

典型用法

接口入参:

public class UserCreateDTO {private String username;private String password;private String email;
}

控制器接收:

@PostMapping("/users")
public Result<Void> create(@RequestBody UserCreateDTO dto) { ... }

最佳实践

  • 按场景定义多个 DTO(CreateDTO、UpdateDTO、QueryDTO)
  • 不放业务方法;只做数据承载与校验注解(如 @NotNull)
  • 与 Entity 分离,转换用 MapStruct/手写转换器
  • 对外出参用 VO,注意脱敏与隐藏内部字段

    文章转载自:

    http://y7Gry8fd.sbyhj.cn
    http://nV9SKtvh.sbyhj.cn
    http://IiiuRv7v.sbyhj.cn
    http://Gp2ISHGE.sbyhj.cn
    http://Y6oREMJ1.sbyhj.cn
    http://jcuj19sA.sbyhj.cn
    http://av5HZEc4.sbyhj.cn
    http://FiTg3pSZ.sbyhj.cn
    http://bVEDfVIf.sbyhj.cn
    http://PxmHvQQv.sbyhj.cn
    http://ybnRfMOt.sbyhj.cn
    http://Q6U0yEhK.sbyhj.cn
    http://k8BwAGWD.sbyhj.cn
    http://USeTiaQu.sbyhj.cn
    http://iacnaZkK.sbyhj.cn
    http://KlqK36iJ.sbyhj.cn
    http://mqYTvfj5.sbyhj.cn
    http://ATA8iGIm.sbyhj.cn
    http://z5SpMIGp.sbyhj.cn
    http://3jhlJdwg.sbyhj.cn
    http://FTbNCsG2.sbyhj.cn
    http://ShP7fnPV.sbyhj.cn
    http://Wxe30wVL.sbyhj.cn
    http://V0KCKaKb.sbyhj.cn
    http://QTa0Eguf.sbyhj.cn
    http://3HF0cCb5.sbyhj.cn
    http://dzhNjD5z.sbyhj.cn
    http://R6WdjUGO.sbyhj.cn
    http://dsXZ4kiz.sbyhj.cn
    http://zNcusHNI.sbyhj.cn
    http://www.dtcms.com/a/375158.html

    相关文章:

  • ERP和MES、WMS、CRM,到底怎么配合?
  • 【实战中提升自己】总部项目实施全方面总结
  • MS9127S USB投屏控制芯片(LVDS输出)
  • rook-ceph的osd块存储权重数据迁移脚本
  • 少儿编程C++快速教程之——3. 数组和矩阵操作
  • 【Kubernetes知识点】CRD客户资源定义及Gateway
  • 移动开发 - Uni-app跨端跨平台开发 - 学习/实践
  • 物联网时序数据管理的利器:为何IoTDB备受青睐?
  • 意识智能体:大模型的下一个进化方向?
  • 探索大模型的前沿:从GPT到LLAMA,看看AI如何改变世界
  • 西门子 S7-200 SMART 核心指令(布尔指令、传送指令、数学运算指令和比较指令)详解
  • llama-stack实战:Python构建Llama应用的可组合开发框架(8k星)
  • App Store 软件上架全流程详解,iOS 应用发布步骤、uni-app 打包上传与审核要点完整指南
  • Linux系统命令行git的使用
  • Ubuntu服务器安装fish-speech本地语音部署教程
  • Tomcat的基础使用
  • 无人机电压模块技术剖析
  • 无人机图传通信模组——16公里抗干扰稳定传输的高性能解决方案
  • 高效 P2P 文件传输工具:FileSync 利用 WebRTC 技术实现极速安全传输
  • UOS20系统安装与 SSH/XRDP 远程访问功能配置指南
  • Spark学习(python版本)
  • 【XR行业应用】XR+工业,从远程协助到数字孪生,如何颠覆制造业?
  • 将Varjo XR技术融入飞行模拟器,有效降低成本提升训练效果
  • 深入了解linux系统—— POSIX信号量
  • K8S集群管理(2)
  • 安装JUPYTERHUB - 不使用LINUX本地用户
  • 如何实现 Vuex 中的 Store 插件
  • 少儿舞蹈小程序(11)作品与活动展示
  • crew AI笔记[6] - tools特性示例
  • 英一2009年真题学习笔记