【发布时间】:2017-02-21 07:17:57
【问题描述】:
Jhipster4 添加了数据传输对象 (DTO) 使用 DTO 对象有什么好处?
【问题讨论】:
Jhipster4 添加了数据传输对象 (DTO) 使用 DTO 对象有什么好处?
【问题讨论】:
主要好处是更精确地控制您从实体中公开哪些属性,并公开实体聚合而不是单个实体。
【讨论】:
通过这个关于 DTO 的链接。 Data Transfer Object
使用数据传输对象的主要原因是将多个远程调用组合成一个调用,值得一提的是,另一个优点是封装了用于传输数据的序列化机制电线。通过像这样封装序列化,DTO 将这个逻辑排除在代码的其余部分之外,并且还提供了一个明确的点来更改序列化(如果您愿意)。
【讨论】:
DTO 代表数据传输对象,是一种设计模式,旨在减少使用远程接口时的调用次数。
使用 DTO 的优势在于,它们可以帮助隐藏域对象(又名实体)的实现细节。如果我们不仔细处理可以通过哪些操作更改哪些属性,那么通过端点公开实体可能会成为一个安全问题。
对于上下文,这里是一个在 Java (Spring Boot) 中使用 DTO 的示例端点:
public class ProductDTO {
private String name;
private Double price;
}
public class Product {
private Long id;
private String name;
private Double price;
}
@PostMapping("/products")
public ResponseEntity<ProductDTO> createProduct(
@RequestBody Product request
) { ... }
【讨论】: