`
liyixing1
  • 浏览: 962120 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

Bean Validation 1.0(JSR-303)

阅读更多
http://jinnianshilongnian.iteye.com/blog/1495594Bean Validation 1.0(JSR-303)


一、Bean Validation框架简介
写道
Bean Validation standardizes constraint definition, declaration and validation for the Java platform.
大体意思是:Bean Validation 标准化了Java平台的约束定义、描述、和验证。

详细了解请参考:http://beanvalidation.org/

Bean Validation现在一个有两个规范:

1、Bean Validation 1.0(JSR-303)
写道
This JSR will define a meta-data model and API for JavaBeanTM validation based on annotations, with overrides and extended meta-data through the use of XML validation descriptors.
定义了基于注解方式的JavaBean验证元数据模型和API,也可以通过XML进行元数据定义,但注解将覆盖XML的元数据定义。

详细了解请参考:http://jcp.org/en/jsr/detail?id=303

JSR-303主要是对JavaBean进行验证,如方法级别(方法参数/返回值)、依赖注入等的验证是没有指定的。因此又有了JSR-349规范的产生。

2、Bean Validation 1.1(JSR-349)
写道
Bean Validation standardizes constraint definition, declaration and validation for the Java platform.
Bean Validation 标准化了Java平台的约束定义、描述、和验证。

此规范目前处于草案状态,详细了解请参考:http://jcp.org/en/jsr/detail?id=349.

该草案现在主要内容:
方法级别验证支持(验证方法参数和和返回值);
依赖注入验证的支持。
 
对Bean Validation的详细介绍可参考Bean Validation官网查看http://beanvalidation.org/。

Spring3.1目前已经完全支持依赖注入验证和方法级别验证的支持,只是不是原生的(规范还是草案)。

Bean Validation 1.0的参考实现有Hibernate Validator(下载地址:http://www.hibernate.org/subprojects/validator.html);1.1还处于草案状态。


可以在任何位置实施验证。

1、表现层验证:SpringMVC提供对JSR-303的表现层验证;
2、业务逻辑层验证:Spring3.1提供对业务逻辑层的方法验证(当然方法验证可以出现在其他层,但笔者觉得方法验证应该验证业务逻辑);
3、DAO层验证:Hibernate提供DAO层的模型数据的验证(可参考hibernate validator参考文档的7.3. ORM集成)。
4、数据库端的验证:通过数据库约束来进行;
5、客户端验证支持:JSR-303也提供编程式验证支持。

参考《hibernate validator reference》。


Spring3.1支持方法级别验证(Bean Validation 1.1草案)

没有方法级别验证可能是
public UserModel get(Integer uuid) {
    //前置条件
    Assert.notNull(uuid);
    Assert.isTrue(uuid > 0, "uuid must lt 0");

    //获取 User Model
    UserModel user = new UserModel(); //此处应该从数据库获取

    //后置条件
    Assert.notNull(user);
    return user;
}



有了MethodValidationPostProcessor之后我们可以这样验证:
public @NotNull UserModel get2(@NotNull @Size(min = 1) Integer uuid) {
    //获取 User Model
    UserModel user = new UserModel(); //此处应该从数据库获取
    return user;
}


开启Spring3.1对方法级别验证支持(spring-config-method-validator.xml)


<!--注册方法验证的后处理器-->
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>

分享到:
评论

相关推荐

    JSR-303接口标准和参考实现

    JSR-303接口标准,全称为Java Specification Request 303,是Java平台上的一个规范,旨在提供一种统一的、与框架无关的bean验证框架。该标准由Java Community Process(JCP)提出,目的是简化Java应用中的数据验证...

    validation-api-1.1.0.Final.jar

    JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,现在一共有两个规范:BeanValidation1.0(即JSR303)和BeanValidation1.1(即JSR349),主要用于对数据进行校验,确保输入进来的数据从语 义上来讲是正确的。...

    [课堂课件讲解]Java微服务实践-Spring Boot 验证.pptx

    同时,我们还将探讨 Spring Validator 和 Bean Validation 1.0(JSR-303)的使用。 Apache Commons Validator 是一个 Java 库,用于验证输入数据的正确性。它提供了一种灵活的验证机制,可以根据不同的 locale 应用...

    Spring jsr-303的帮助文档

    ### Spring JSR-303帮助文档:Bean Validation 核心知识点详解 #### 一、简介 **JSR-303(Java Specification Request 303)** 是 Java 平台上的一种数据验证标准,其核心是 **Bean Validation**。这一规范由 **...

    Bean Validation 技术规范特性概述

    - **JSR 303/JSR 349**:Bean Validation 1.0和1.1是作为JSR(Java Specification Request)发布的,分别为JSR 303和JSR 349,适用于Java EE环境。 - **Hibernate Validator**:它是Bean Validation的参考实现,同时...

    详解如何在Spring Boot项目使用参数校验

    本篇文章将详细介绍如何在 Spring Boot 项目中使用参数校验,包括使用 Bean Validation 1.0(JSR-303)规范和 Hibernate Validator 实现参数校验的方法。 一、Bean Validation 1.0(JSR-303)规范 Bean Validation...

    JSR303Test.zip

    这个标准被纳入了JSR 349,即Bean Validation 1.0,随后在Bean Validation 1.1(JSR 380)中得到了进一步的增强和发展。JSR 303/Bean Validation提供了一种统一的方式来验证Java对象的属性,使得开发者可以在不侵入...

    spring4采用JSR349标准校验数据

    这个规范是对早期Bean Validation 1.0(JSR 303)的增强,它引入了更多的注解、更灵活的校验规则和更强大的API。主要目的是为了提供一种统一的数据验证机制,使得开发者可以在不侵入业务逻辑的情况下,对输入数据...

    32 数据转换总结及常见面试题目解析慕课专栏(1)1

    而@Valid是JSR-303的标准注解,不支持分组功能,但能应用于更广泛的场景,包括构造函数、字段以及方法参数。 4. JSR303, JSR349, JSR 380的关系与应用场景 JSR303是Bean Validation 1.0的规范,定义了JavaBean的...

    hibernate validator jsr303

    Hibernate Validator 是一个强大的Java Bean验证框架,它实现了JSR 303(JavaBeans Validation 1.0)和JSR 349(JavaBeans Validation 1.1)规范,为开发者提供了丰富的数据验证功能。这些规范旨在标准化Java应用...

    hibernate-validator-4.1.0.Final.rar

    Hibernate Validator是Hibernate项目的一个重要组成部分,它是一个基于JSR-303(Bean Validation)规范的实现,提供了强大的Java Bean数据验证功能。这次我们关注的是Hibernate Validator的4.1.0.Final版本,该版本...

    hibernate validator

    Hibernate Validator 是一个强大的Java Bean验证框架,它是Hibernate项目的一部分,实现了JSR-303(Bean Validation 1.0)和JSR-349(Bean Validation 1.1)标准,提供了对对象模型的验证功能。在版本5.1.2.Final中...

    api-doclet:Doclet 从 JAX-RS 2、BeanValidation、JavaDoc 标签收集各种信息

    API 文档该项目提供了一个 JavaDoc doclet,用于收集有关 API 的各种...JSR303 1.0 最终版) 目前不支持 JavaDoc 标签 每个 javax.ws.rs.Application 的标签注解格式描述@apiTitle string @apiVersion string @apiHost

    spring 2.5 中文文档 翻译版 pdf + chm 天涯浪子

    3. **JSR-303/JSR-349(Bean Validation)集成**:Spring 2.5开始支持JSR-303(Bean Validation 1.0),这是一个用于校验Java Bean属性的标准。通过`@Valid`注解,可以在控制器方法参数上启用数据验证,简化了业务...

    hibernate-validator-6.0.2

    Hibernate Validator 是 Hibernate 组织的一员,它实现了 JSR 303(Java Bean Validation 1.0)和 JSR 349(Java Bean Validation 1.1)规范。这些规范定义了一种标准的方式来验证对象的属性,确保输入的数据符合...

    hibernate-validator-4.3.1.Final-sources

    Hibernate Validator是Hibernate项目的一个子项目,它实现了JSR-303(Bean Validation 1.0)和JSR-349(Bean Validation 1.1)规范,提供了一套强大的验证框架。该框架允许开发者通过注解方式定义验证规则,简化了...

    hibernate-validator数据校验jar集合

    `Hibernate Validator`是一个开放源代码项目,由Hibernate团队维护,它基于JSR 303(Bean Validation 1.0)和JSR 349(Bean Validation 1.1)标准,用于在Java应用中执行对象级验证。 `Hibernate Validator`的主要...

    hibernate-validator.rar

    Hibernate Validator 是 JSR 303(Bean Validation 1.0)和 JSR 349(Bean Validation 1.1)规范的参考实现,它提供了丰富的注解和API,使得开发者能够在代码中方便地定义和执行数据验证规则。通过在实体类的属性上...

    validator校验所需jar包

    Hibernate Validator是Hibernate项目的一个组件,提供了对JSR 303(Bean Validation 1.0)和JSR 349(Bean Validation 1.1)规范的实现。这个库允许开发者定义一系列的验证规则,并在运行时检查对象实例是否满足...

    struts1.0+spring3.0+hibernte3.2

    Spring3.0增强了对JSR-303 Bean Validation的支持,提供了更丰富的数据绑定和类型转换,以及对RESTful服务和Web服务的增强支持。此外,Spring3.0还引入了Spring MVC,这是一个现代的Web MVC框架,可以替代或与Struts...

Global site tag (gtag.js) - Google Analytics