Spring MVC创建对象请求

a3dsfcv:

我正在用Spring MVC编写服务,以将书添加到库中。所以我有一个方法,@PostMapping(...) public Book addBook(@RequestBody Book book) {...}但问题是Book对象包含许多杂项,但我只希望其中一些允许传递给addBook请求。可以说一本书中有一个field lastRequestedTime,我从不想让用户填写此参数。

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

我多少钱?有没有更好的方法?

jolice:

您的想法是正确的,您将要实现的是DTO模式

这个想法是将您的请求主体与域模型分离(假设Book是一个业务实体)。它们分别指不同的应用程序层:控制器和域模型。

这样的区别有很多优点:

  • 对请求逻辑的更改不会影响业务实体(反之亦然)
  • 请求对象不包含多余的字段(这是您的情况)
  • 序列化逻辑没有与域模型定义混合在一起(例如,您可能需要在请求对象的属性上放置一些Jackson注释)

但是,请注意有一个重大缺点:代码重复

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

到底在哪Spring MVC中创建了一个模型对象?

使用Spring MVC exceptionHandler的Get请求值

Spring MVC如何从模型获取数据,为什么在提交表单后每次都创建modelAttribute对象?

如何在整个Spring MVC Web应用程序中创建对象的单个实例?

BeanResult的BindingResult和普通目标对象都不能用作请求属性-Spring MVC

如何在发出RESTful请求时使用Spring 3.0 MVC将XML转换为对象

在Spring MVC中将请求写入文件

如何使用Spring MVC发送请求?

Spring MVC缺少请求属性

无法将请求参数绑定到Spring MVC中的对象?

带有JSON的Spring MVC分段请求

Spring MVC中的PUT请求

Spring MVC:发布请求和带有数组的json对象:错误请求

Spring MVC @RequestParam对象列表

Spring MVC嵌套对象验证

在Spring MVC中修改请求URI

Spring MVC-分页和请求方法

Spring MVC发布请求

Spring MVC bean创建错误

在请求中包含列表的映射对象-Spring MVC

如何获取有关在Spring MVC中创建的会话的请求信息?

Spring-MVC,休眠:从Domain对象创建DTO对象

Spring MVC AJAX错误请求错误

创建自己的类,在Spring中将HTTP请求转换为对象?

Spring MVC Controller正在工作但未创建指定的响应URL,它正在从请求映射字符串创建URL

Spring MVC请求中断的钩子

Spring 4 MVC表单:创建带有子对象列表的对象

在 Spring MVC 中获取 Ajax 请求的 404

如何在请求正文 spring mvc 中发送带有实体对象的额外字段?