Controller 应该与 DTO 一起使用,服务与域模型一起使用。对于 Controller 和服务之间的通信,在 Controller 或服务中,从 DTO 转换到模型的最佳位置是什么?另外,执行服务逻辑后构建DTO的最佳位置是什么?
最佳答案
从 DTO 到模型(反之亦然)转换的最佳位置是映射器。
您不应该将转换逻辑放在服务代码中,因为一个 DTO 可以被多个服务使用。将其放入服务代码中使其与一项特定服务绑定(bind)。不是解决方案。
您不应该将转换逻辑放入 Controller 中,因为服务为了转换某些内容,会变得依赖于 Controller 。不是解决方案。
创建一个Mapper
接口(interface)。为其提供实现(您甚至可以使用库进行映射,例如 ModelMapper )。并在需要时使用此映射器进行转换。
关于java - DTO 转换层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646393/