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

原文地址:https://www.cnblogs.com/rgky/p/5537341.html