![]() |
1
2
不久前我就遇到了这个难题,这是我思考的过程。我这里有 https://stackoverflow.com/questions/44572188/microservices-restful-api-dtos-or-not 仅仅公开域对象的优点
欺骗
短篇小说 免责声明 |
![]() |
2
1
我们应该把每一层都分开。与您的案例一样,您已经定义了实体和响应类。这是分离事物的正确方法,我们永远不应该发送实体中的响应。即使是要求的东西,我们也应该有一节课。 如果我们发送的是实体而不是响应dto,问题是什么。 在将请求转换为域、实体转换为域等方面存在一些开销,但保持更有序是可以的。ModelMapper是翻译的最佳选择。 尝试使用构造注入而不是setter来实现任务依赖。 |
![]() |
3
1
通常建议将DTO和实体分开。 实体 应该与 数据库/模板 DTO公司 实体 和 DTO公司 一样。
这里是实体
使用现有类
分离原因:
|
![]() |
4
1
如果以后决定更改数据层呢?你需要重写你所有的客户端吗? 另一方面,还有映射的问题。为此,可以使用性能损失较小的库。 |
![]() |
5
1
对于像您这样的简单应用程序,dto往往类似于实体类。但是,对于某些复杂的应用程序,可以扩展dto来组合来自不同实体的数据,以避免对服务器的多个请求,从而节省宝贵的资源和请求响应时间。 我建议不要在这样一个简单的情况下复制代码,并使用模型类来响应api。使用单独的响应类作为dto并不能解决任何问题,只会使代码的维护变得困难。 |
![]() |
6
0
虽然大多数人都回答了使用DTO对象的利弊,但我想给你2美分。在我的例子中,DTO是必要的,因为并不是数据库中持久存在的所有字段都是从用户捕获的。有几个字段是根据用户输入(其他字段的输入)计算的,不向用户公开。此外,它还可以减小有效负载的大小,从而在这种情况下获得更好的性能。 |
![]() |
TheCrunchyPotato · JPA查询找不到正确的构造函数 2 年前 |
![]() |
Maiko Kingma · hibernate何时加载映射关系 6 年前 |
![]() |
Damien · 如何判断JPA save方法执行了什么操作 6 年前 |