夜雨聆风学习资料网

ARTICLE · 1092433

用 Record 重构 DTO 告别文档失真

用 Record 重构 DTO 告别文档失真

写项目接口时,图省事搞了个万能 DTO。新增和更新全靠 Validation Groups 来兼容。

结果 Swagger 文档直接乱了套。id 字段既提示必须为空,又提示不能为空。前端看着这必填标识直发懵。而且光五个字段,getter、setter 就写了十个。加上 equals、hashCode 更是越堆越多。

这就像在 TS 里为了复用,硬用一个庞大的 interface。再用 Omit 和 Partial 来回凑。看着省事了,但类型精确性全丢了。

后来换成了 Java 的 record,按场景拆成两个类。新增一个 ProjectAddReq,更新一个 ProjectUpdateReq。record 自带全参构造和访问器。字段默认 final,数据传下去不会被乱改。

拆分后校验规则单一了,文档也清爽了。好消息是 Spring Boot 3.x 原生支持 record。序列化反序列化都不用额外配。

多建两个文件,换来的是类型安全和准确的文档。

原文SpringBoot 工程进阶:用 Record 重构 DTO 告别文档失真
收录于SpringBoot 进阶
作者提示: 个人观点,仅供参考
江苏,1小时前,

相关学习资料