gpt4 book ai didi

java - 在服务层使用 DTO 是一种好习惯吗?

转载 作者:行者123 更新时间:2023-12-04 10:33:23 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Spring Entities should convert to Dto in service?

(1 个回答)



Should services always return DTOs, or can they also return domain models?

(9 个回答)



Which layer should be used for conversion to DTO from Domain Object

(3 个回答)



Should service layer accept a DTO or a custom request object from the controller?

(2 个回答)



Data Transfer Object DTO Where to build

(4 个回答)


2年前关闭。




我有一个将 dto 转换为实体并将其传递给服务级别的 Controller 。

@PostMapping(value = "/new", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<UserDto> create(@RequestBody UserDto userDto){
User newUser= userService.save(userMapper.userDtoToUser(userDto));
return ResponseEntity......body(userMapper.userToUserDto(newUser));
}

正确的决定是不是将实体转移到服务,而是转移到 dto?
例如:
    public interface UserService{
UserDto save(UserDto userDto);
}

在 Controller 级别转换实体和 dto 的决定是否正确?

最佳答案

将任何转换逻辑放在 Controller 中是一种不好的做法。所有转换/填充逻辑都应该放在辅助类中,例如转换器和填充器。查看here例如。

此外,您的服务类应该为 CRUD 操作获取一个实体(而不是 DTO),因为 DTO 可能没有成功完成 CRUD 操作所需的所有值。但是,更好的做法是将所有 CRUD 操作放到一个公共(public)服务中,例如EntityService 并将必须对其执行 CRUD 操作的实体(例如用户)传递给它,例如YourEntityService.save(用户)。查看herehere例如。

关于java - 在服务层使用 DTO 是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307608/

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