gpt4 book ai didi

java - Spring MVC 创建对象请求

转载 作者:行者123 更新时间:2023-12-02 09:17:53 25 4
gpt4 key购买 nike

我正在使用 Spring MVC 编写服务以将书籍添加到图书馆。所以我有一个方法 @PostMapping(...) public Book addBook(@RequestBody Book book) {...}但问题是 Book 对象包含很多字段,但我只希望其中一些允许传递给 addBook 请求。假设一本书中有一个字段lastRequestedTime,我不想允许用户填写这个参数。

我的想法是创建包含所有必需字段的新类 AddBookRequest ,因此我的方法将如下所示:@PostMapping(...) public Book addBook(@RequestBody AddBookRequest book) {...} 但在这种情况下,我几乎需要为每个请求创建大量 **Request 类。

我的说法有多少是对的?还有更好的方法吗?

最佳答案

你的想法是对的,你要实现的是 DTO pattern .

这个想法是将您的请求主体与域模型解耦(假设书籍是一个业务实体)。它们分别指不同的应用程序层: Controller 和域模型。

这种区别有很多优点:

  • 请求逻辑的更改不会影响业务实体(反之亦然)
  • 请求对象不包含额外的字段(这是您的情况)
  • 序列化逻辑不与域模型定义混合(例如,您可能希望在请求对象的属性上添加一些 Jackson 注释)

但是请注意,它有一个显着的缺点:代码重复

关于java - Spring MVC 创建对象请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58878409/

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