Java bean validation 规范与参考实现

1、Apache Bval

依赖包:validation-api-1.1.0.Final.jar

    org.apache.bval.bundle-1.1.1.jar

    bval-core-1.1.1.jar

validator实现类:org.apache.bval.jsr.ApacheValidationProvider

2、Hibernate Validator

依赖包:validation-api-1.1.0.Final.jar

    hibernate-validator-5.3.0.Alpha1.jar

validator实现类:org.hibernate.validator.HibernateValidator

Hibernate Validator 自带了基本的中文国际化的消息资源文件

spring集成Java bean validation
1、spring除了要指定validator或指定国际化的消息资源文件,否则不需要添加初始化validator配置,spring会自动识别存在的validator库

    <!-- 启用annotation并指定validator -->
    <annotation-driven validator="validator" />
    <beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <beans:property name="providerClass" value="org.apache.bval.jsr.ApacheValidationProvider" />
        <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties -->
        <beans:property name="validationMessageSource" ref="messageSource" />
    </beans:bean>

    <!-- 国际化的消息资源文件(本系统中主要用于显示/错误消息定制) -->
    <beans:bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <beans:property name="basenames">
            <beans:list>
                <!-- 在web环境中一定要定位到classpath 否则默认到当前web应用下找 -->
                <beans:value>classpath:messages</beans:value>
                <beans:value>classpath:org/hibernate/validator/ValidationMessages</beans:value>
            </beans:list>
        </beans:property>
        <beans:property name="useCodeAsDefaultMessage" value="false" />
        <beans:property name="defaultEncoding" value="UTF-8" />
        <beans:property name="cacheSeconds" value="60" />
    </beans:bean>

参考文献:http://jinnianshilongnian.iteye.com/blog/1990081

     http://blog.csdn.net/wangpeng047/article/details/41726299

时间: 2024-11-09 23:43:26

Java bean validation 规范与参考实现的相关文章

基于Java Bean Validation对Request参数进行校验的设计思路

摘自Hibernate Validator文档: 数据校验是任何一个应用程序都会用到的功能,无论是显示层还是持久层. 通常,相同的校验逻辑会分散在各个层中, 这样,不仅浪费了时间还会导致重复代码的发生. 为了避免重复, 开发人员经常会把这些校验逻辑直接写在领域模型里面, 但是这样又把领域模型代码和校验代码混杂在了一起, 而这些校验逻辑更应该是描述领域模型的元数据. JSR 303 - Bean Validation (version 1.1)- 为实体验证定义了元数据模型和API. 默认的元数据

深入了解数据校验:Java Bean Validation 2.0(JSR380)

每篇一句 吾皇一日不退役,尔等都是臣子 相关阅读 [小家Java]深入了解数据校验(Bean Validation):基础类打点(ValidationProvider.ConstraintDescriptor.ConstraintValidator) 对Spring感兴趣可扫码加入wx群:`Java高工.架构师3群`(文末有二维码) 前言 前几篇文章在讲Spring的数据绑定的时候,多次提到过数据校验.可能有人认为数据校验模块并不是那么的重要,因为硬编码都可以做.若是这么想的话,那就大错特错了~

Spring3.1 对Bean Validation规范的新支持(方法级别验证)

一.Bean Validation框架简介 写道 Bean Validation standardizes constraint definition, declaration and validation for the Java platform. 大体意思是:Bean Validation 标准化了Java平台的约束定义.描述.和验证. 详细了解请参考:http://beanvalidation.org/ Bean Validation现在一个有两个规范: 1.Bean Validatio

Java Bean Validation 最佳实践

参数校验是我们程序开发中必不可少的过程.用户在前端页面上填写表单时,前端js程序会校验参数的合法性,当数据到了后端,为了防止恶意操作,保持程序的健壮性,后端同样需要对数据进行校验.后端参数校验最简单的做法是直接在业务方法里面进行判断,当判断成功之后再继续往下执行.但这样带给我们的是代码的耦合,冗余.当我们多个地方需要校验时,我们就需要在每一个地方调用校验程序,导致代码很冗余,且不美观. 那么如何优雅的对参数进行校验呢?JSR303就是为了解决这个问题出现的,本篇文章主要是介绍 JSR303,Hi

JSR303 Bean Validation 技术规范特性概述

概述 Bean Validation 规范 Bean 是 Java Bean 的缩写,在 Java 分层架构的实际应用中,从表示层到持久化层,每一层都需要对 Java Bean 进行业务符合性验证,如图 1 所示.然而对于同一个 Java Bean 的对象,在每一层都需要实现同样的验证逻辑时,这将是一项耗时且容易诱发错误的做法.Bean Validation 规范的目标就是避免多层验证的重复性.事实上,开发者更倾向于将验证规则直接放到 Java Bean 本身,使用注解的方式进行验证规则的设计.

JSR-303规范,Bean Validation

一: JSR 303是JAVA EE 6中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator,此实现与Hibernate ORM没有任何关系.JSR 303用于对Java Bean中的字段的值进行验证. 本教程翻译自Hibernate Validator 4.0 GA指南,并参考JSR 303的规范,本着尽量不用JSR规范之外的特性,文档在编写时尽量不提及底层实现Hibernate Validator,而是关注Bean Validation规范

Java参数验证Bean Validation 框架

1.为什么要做参数校验? 参数校验和业务逻辑代码分离,参数校验代码复用,统一参数校验方式.校验不太通过时统一异常描述. 2.bean validation规范 JSR303 规范(Bean Validation 规范)提供了对 Java EE 和 Java SE 中的 Java Bean 进行验证的方式.该规范主要使用注解的方式来实现对 Java Bean 的验证功能,并且这种方式会覆盖使用 XML 形式的验证描述符,从而使验证逻辑从业务代码中分离出来.JSR303注解如下: Hibernate

JSR 303 - Bean Validation 介绍及最佳实践

JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 Java EE 6 发布,Bean Validation 作为一个重要特性被包含其中.本文将对 Bean Validation 的主要功能进行介绍,并通过一些示例来演示如何在 Java 开发过程正确的使用 Bean Validation. 1 评论: 安 大鹏, 软件工程师, IBM 杨 乐, 软件工程师, IBM 翁 志弘, 软件工程师, IBM 2011 年

Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC

Bean Validation 1.1当前实现是Hibernate validator 5,且spring4才支持.接下来我们从以下几个方法讲解Bean Validation 1.1,当然不一定是新特性: 集成Bean Validation 1.1到SpringMVC 分组验证.分组顺序及级联验证 消息中使用EL表达式 方法参数/返回值验证 自定义验证规则 类级别验证器 脚本验证器 cross-parameter,跨参数验证 混合类级别验证器和跨参数验证器 组合多个验证注解 本地化 因为大多数时