gpt4 book ai didi

java - Spring boot 中实体的使用与 Dto 的使用

转载 作者:行者123 更新时间:2023-11-30 06:10:58 25 4
gpt4 key购买 nike

通常,当我创建 REST 应用程序时,我会按以下方式创建它们:

Controller (接收/返回 Dtos)-> 服务(接收和返回 Dtos 并使用 MapStruct 在内部映射往返实体)-> 存储库(始终接收实体)

但我意识到现在我们可以使用 spring 属性:

spring.jpa.open-in-view=false

所以我想知道 Spring REST 应用程序中是否仍然需要使用 Dto,以及使用它们或避免使用它们的影响是什么?

最佳答案

我认为没有正确的方法。正如您所说,我们需要讨论权衡。

对所有层使用一种模型进行开发可能会加快您的开发速度。您不会花费时间创建多个 DTO(并且还避免创建实体模型和 DTO 之间的映射)。然而,你会把所有的都结合起来。模型中的一个小变化可能会影响所有层,您可能必须处理它。每当您需要调整代码时,可能会花费更多的精力。

另一种方法是为每一层使用 DTO(或专用/特定模型),这可能会增加您的开发时间。在这种情况下,每当请求更改时,对其他层的影响可能很小。我的意思是,破坏其他层的风险降低了。正如您的问题一样,实体模型中的更改不会影响 REST API,因为它仅公开 DTO。

总而言之,主要问题是:您更喜欢“开发速度”还是“失去层/类之间的耦合”?

如您所见,这取决于您的需求。

关于java - Spring boot 中实体的使用与 Dto 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com