DAO 接口中的@Validated注释会有所帮助吗?



我在DAO界面中看到了很多不是我写的@Validated注释。例如:

@Validated
public interface CompanyDAO extends BaseDAO<Company> {
    public List<Company> list();

我应该从中期待什么行为:

  • 将传递给 DAO 的所有对象保存到数据库中之前对其进行验证?
  • 验证 DAO 从数据库中检索到的所有对象?
  • 他们两个?
  • 什么都没有。此注释不应放置在 DAO 接口中。

只是一些你可能不知道的指针:

    8.8
  • 春季验证 8.手册中的验证、数据绑定和类型转换指定

    为了有资格进行 Spring 驱动的方法验证,所有目标类都需要使用 Spring 的@Validated注释进行注释,可以选择声明要使用的验证组。查看 MethodValidationPostProcessor javadocs 以获取 Hibernate Validator 和 Bean Validation 1.1 提供程序的设置详细信息。

  • MethodValidationPostProcessor

    适用的方法在其参数和/或返回值上具有JSR-303约束注释(在后一种情况下在方法级别指定,通常为内联注释),例如:

    public @NotNull Object myValidMethod(@NotNull String arg1, @Max(10) int arg2)
    

    具有这种注释方法的目标类需要在类型级别使用 Spring 的 Validate 注释进行注释,以便搜索其方法以查找内联约束注释。也可以通过@Validated指定验证组。缺省情况下,JSR-303 将仅针对其默认组进行验证。

所以,也许是你问题的答案

我应该期待什么行为

is:代码中给出的任何约束。

最新更新