我正在用Spring MVC编写服务,以将书添加到库中。所以我有一个方法,@PostMapping(...) public Book addBook(@RequestBody Book book) {...}
但问题是Book
对象包含许多杂项,但我只希望其中一些允许传递给addBook
请求。可以说一本书中有一个field lastRequestedTime
,我从不想让用户填写此参数。
我的想法是创建AddBookRequest
带有所有必填字段的新类,因此我的方法将如下所示:@PostMapping(...) public Book addBook(@RequestBody AddBookRequest book) {...}
但是在这种情况下,我**Requst
几乎需要为每个请求创建很多类。
我多少钱?有没有更好的方法?
您的想法是正确的,您将要实现的是DTO模式。
这个想法是将您的请求主体与域模型分离(假设Book是一个业务实体)。它们分别指不同的应用程序层:控制器和域模型。
这样的区别有很多优点:
但是,请注意有一个重大缺点:代码重复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句