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>