通过Annotations向Java Bean添加验证

时间:2009-09-11 17:59:40

标签: java annotations aop aspectj

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

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

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

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

提前感谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

看看JSR 303。 RI(参考实施)为herealso a nice tutorial。不,你不需要AspectJ。

答案 2 :(得分:0)

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

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

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