我在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:代码中给出的任何约束。