为什么要把@Valid放在controller层?

问题描述 投票:0回答:1

我的问题是,有时我们需要在其他服务中使用某个服务,并且它们将对象传递给该服务,但根据该服务,这些对象可能无效,

  • 因此它们必须在我们的服务中得到验证。

  • 我们还在控制器中使用@Valid。

好了,有了这个描述,把@Valid传递到服务层进行一次验证不是更好吗?否则,验证必须在控制器中完成一次,然后在服务中再次完成,这会增加开销。

java spring spring-boot spring-mvc spring-validation
1个回答
0
投票

@Valid 注解通常用在控制器中,以确保传入的请求数据在应用程序进一步处理之前是有效的。这很有用,因为它有助于在请求处理管道中尽早捕获错误,从而更轻松地向客户端提供有意义的错误消息。

现在,您应该将其移至服务层吗?好吧,当然,如果您喜欢重复逻辑并降低代码的可维护性。在服务层中进行验证可能会避免您重复执行两次,但这也意味着需要直接调用服务的应用程序的任何客户端或任何其他部分都不会从验证中受益。

© www.soinside.com 2019 - 2024. All rights reserved.