我想为Java Bean添加验证。例如,我想要执行以下操作:

@MaxLength(50)
@RequiredField
public void setEmployeeName(String name){
   .....
}

我知道在设置了所有bean值之后,我可以通过调用 method.getDeclaredAnnotation 来编写获取特定方法验证的代码。我想避免编写此代码

Java6中是否有通过注释提供标准验证的内容?我是否需要aspectj来调用这些注释?

提前感谢。

有帮助吗?

解决方案

您可以使用Bean Validation Framework。这是简短的概述 http://relation.to/Bloggers/BeanValidationSneakPeekPartI

其他提示

查看 JSR 303 。 RI(参考实施)是此处也是一个很好的教程。不,你不需要AspectJ。

您能够做到这一点的唯一方法是通过反射和自定义验证实用程序/拦截器/代理。 JSR 303和JSR 305被提议引入类似的功能,但不存在这样的情况。

您将遇到的一个问题是,这些注释需要在某种框架级别处理,或者至少在某种类型的调用操作之前被截获。最常见的两种方法是,通过创建实用程序或通过在调用处理程序(代理)中验证预调用来完成这种方式。

现实情况是,除非将其内置到Spring,Struts,Guice,Java本身等中,否则您只需创建不必要的开销,并且最好根据需要检查验证边界。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top