SpringBoot中能在控制器中映射dto吗?

原文约1500字,阅读约需4分钟。发表于:

我的经理告诉我,最佳实践是:将从服务层返回的 dto 映射到控制器。我的想法是:控制器只有一行,只需将逻辑委托给服务层并返回响应实体,因此在能在控制器中映射一个dto。网友建议:1、因为你可能需要在一个服务中使用另一个服务。然后你正在混合领域对象和DTO:DTO 是外部合约,所以在我的工作中,控制器只是负责与实体对象之间的转换。2、如果您想对服务层做到真正严格和干净,您的内部服务不应使用通过 API 公开的相同 DTO,这为您提供了最大程度的解耦。因此,您的服务应该返回一个内部对象或记录,并且您应该有另一个服务从该对象转换为 API DTO,这样您的控制器就会有一个流程,例如将请求 DTO 转

SpringBoot中能在控制器中映射dto吗?控制器只需将逻辑委托给服务层并返回响应实体,因此在能在控制器中映射一个dto。网友建议:1、因为可能需要在一个服务中使用另一个服务,所以控制器只负责与实体对象之间的转换。2、控制器不应执行任何业务逻辑,验证只是其中之一。3、控制器可能需要为其客户端设置cookie,将数据转换为符合hatoas的形式,执行更多操作。4、问题取决于您期望每个层多久更改一次,如果预计业务逻辑会频繁更改,则引入dto层可能是明智的选择。5、一旦映射中发生了业务逻辑,将其移到服务层。

相关推荐 去reddit讨论