- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Bean Validation 中文参考手册中文参考手册
中文参考手册中文参考手册
李海峰 QQmailto:andrew830314@163.com
JSR 303 是JAVA EE 6 中的一项子规范,叫做Bean Validation ,官方参考实现是Hibernate
Validator ,此实现与Hibernate ORM 没有任何关系。JSR 303 用于对Java Bean 中的字段的值
进行验证。
在JAVA 的分层架构中,一个域模型对象通常要在如下的结构中进行传递:
在每一层中可能都要对这个域模型对象中的字段值进行业务符合性校验。由于在不同的阶
段,校验规则的不同,你可能就要在每个阶段书写不同的校验逻辑,并且这些逻辑会耦合到
业务代码中。
JSR 303 提供了基于注解的方式,对域模型对象的字段进行校验,使得验证逻辑从业务代码
中分离出来。
JSR 303 的类库位于javax.validation.* 包。
_______________________________________________________________________________
1. 简单示例简单示例::
简单示例简单示例::
public class Student {
@NotNull
@Min(value = 1)
@Max(value = 9999)
private Long id;
@NotNull
@Size(min = 1, max = 20, message = 名字的长度必须在{min}和{max}之间)
private String name;
static ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
static Validator validator = vf.getValidator();
public static void main(String[] args) {
Student s = new Student();
= AAAAAAAAAAAAAAAAAAAAAAAAAAAA;
SetConstraintViolationStudent set = validator.validate(s);
for (ConstraintViolationStudent constraintViolation : set) {
System.out.println(constraintViolation.getMessage());
}
}
}
运行这段程序你会看到如下语句输出到控制台:
must be not null
名字的长度必须在1和20 之间
上面的验证注解从字面就可以知道其作用是什么,稍有不同的是除了@Size 注解之外,其余
的注解使用的错误输出消息都是JSR 303 默认的内容。
但是你可以直观的感受到,上面的代码简洁干净,省去了很多if…else… 的条件判断的语句。
_______________________________________________________________________________
2. 初始化验证器初始化验证器::
初始化验证器初始化验证器::
ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
这种方式会使用默认的方式创建验证工厂,所谓默认的方式就是它会检索类路径下的所有
jar 文件,查找META-INF/services/ 目录中的javax.validation.spi.ValidationProvider 文件中的
验证提供器的类名。由于我们使用的是 Hibernate Valida
原创力文档


文档评论(0)