【发布时间】:2021-07-24 03:55:38
【问题描述】:
我最近读了一些关于 DTO 模式的文章。我理解它的目的;隔离内部结构并为客户创建合同。但是,我一直在思考如何有效地将它们映射到实体。
所以,假设我有 2 个 Dto; CreatePostDto 和 ReadPostDto 可能在多个字段中有所不同。现在,我想将它们映射到 PostEntity,这可以使用 modelmapper、mapstruct 等技术完成。但是,将它们映射到服务层对我来说似乎不是很有吸引力,因为代码往往会变得混乱。
一种方法是创建一个通用映射器抽象类并为特定 dto 提供实现。不过,我对这种方法持怀疑态度,因为我可能有许多 dto,即许多 postDto,这会导致许多映射器类。
有没有更好的方法来做到这一点?
【问题讨论】:
-
您提到了 mapstruct,为什么不使用它为您生成样板代码?它具有 Spring 支持,因此您可以将映射器注入您的服务层?
-
你需要 dto 因为更少的时间连接数据库并且不忙数据库池
标签: java spring spring-boot jakarta-ee dto