DAO接口中的@Validated注释是否有帮助?

时间:2016-01-20 20:18:38

标签: spring validation spring-mvc interface dao

我在DAO界面看到了很多@Validated注释,我没有写过。例如:

@Validated
public interface CompanyDAO extends BaseDAO<Company> {

    public List<Company> list();

我应该从中得到什么样的行为:

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

1 个答案:

答案 0 :(得分:1)

您可能没有注意到的一些指示:

  • 8.8 Spring Validation of 8. Validation, Data Binding, and Type Conversion in the manual指定

      

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

  • MethodValidationPostProcessor

      

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

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

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

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

  

我应该期待什么行为

是:无论代码中给出了什么约束。