最近上班无聊中,突然想到,有没有一个EJB验证框架实现如下类似功能:
@ValidateField
public class Address{
String name = "test";
@Length(name="default",min=2,max=6)
public String getName(){
return name;
}
}
@Stateless
@Interceptors(ValidatorInterceptor.class)
public class TestBean(){
@ParameterValidate( { @Parameter(rule= "default") })
public void createAddress(Address address){
/****************/
}
}
我的想法是这样子的,先定义一个需要做数据验证业务对象Address,用@ValidateField注释表示它可以被验证,在它的方法getName上使用注释@Length(name="default",min=2,max=6)表示getName返回的字符串在规则default下的长度必须在2~6之间。
当TestBean的方法createAddress被调用时,ValidatorInterceptor拦截器将读取createAddress方法的@ParameterValidate( { @Parameter(rule= "default") })注释,对address.getName()的返回值使用规则default进行验证,如果通过则继续,不通过则抛出错误。
不知道是否已经有类似的验证框架,或实现这样一个框架有没有实际意义?能否帮助减少书写验证代码的痛苦
另:
java的注释确实是个好用的东西哈!