首页 > 其他分享 >Spring注入Hibernate验证框架

Spring注入Hibernate验证框架

时间:2023-11-08 16:02:37浏览次数:28  
标签:Hibernate Min 验证 Spring 元素 value 类型 注解


Spring配置文件
<!-- Enables the Spring MVC @Controller programming model -->
	<mvc:annotation-driven validator="validator" />
	
	<!-- 配置数据校验 -->
	<bean id="messageSource"
		class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
        <property name="basename" value="classpath:messages"/>
        <property name="fileEncodings" value="utf-8"/>
        <property name="cacheSeconds" value="10"/>
	</bean>
	<bean id="validator"
		class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">  
        <property name="providerClass"
			value="org.hibernate.validator.HibernateValidator"/>
		<property name="validationMessageSource" ref="messageSource"/>
	</bean>






Hibernate内置的验证约束注解如下表所示(摘自hibernate validator reference):

验证注解

验证的数据类型

说明

@AssertFalse

Boolean,boolean

验证注解的元素值是false

@AssertTrue

Boolean,boolean

验证注解的元素值是true

@NotNull

任意类型

验证注解的元素值不是null

@Null

任意类型

验证注解的元素值是null

@Min(value=值)

BigDecimal,BigInteger, byte,

short, int, long,等任何Number或CharSequence(存储的是数字)子类型

验证注解的元素值大于等于@Min指定的value值

@Max(value=值)

和@Min要求一样

验证注解的元素值小于等于@Max指定的value值

@DecimalMin(value=值)

和@Min要求一样

验证注解的元素值大于等于@ DecimalMin指定的value值

@DecimalMax(value=值)

和@Min要求一样

验证注解的元素值小于等于@ DecimalMax指定的value值

@Digits(integer=整数位数, fraction=小数位数)

和@Min要求一样

验证注解的元素值的整数位数和小数位数上限

@Size(min=下限, max=上限)

字符串、Collection、Map、数组等

验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小

@Past

java.util.Date,

java.util.Calendar;

Joda Time类库的日期类型

验证注解的元素值(日期类型)比当前时间早

@Future

与@Past要求一样

验证注解的元素值(日期类型)比当前时间晚

@NotBlank

CharSequence子类型

验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格

@Length(min=下限, max=上限)

CharSequence子类型

验证注解的元素值长度在min和max区间内

@NotEmpty

CharSequence子类型、Collection、Map、数组

验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)

@Range(min=最小值, max=最大值)

BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型

验证注解的元素值在最小值和最大值之间

@Email(regexp=正则表达式,

flag=标志的模式)

CharSequence子类型(如String)

验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式

@Pattern(regexp=正则表达式,

flag=标志的模式)

String,任何CharSequence的子类型

验证注解的元素值与指定的正则表达式匹配

@Valid

任何非原子类型

指定递归验证关联的对象;

如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证

 



标签:Hibernate,Min,验证,Spring,元素,value,类型,注解
From: https://blog.51cto.com/u_809530/8255969

相关文章

  • Spring 3.0 注解注入详解
    一、各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource)     @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。要使@Autowired能够工作,还需要在配置文件中......
  • Springboot项目出现Error resolving template [index]的解决方法
    在SpringBoot中遇到模板文件不存在的问题在SpringBoot开发中,有时候会遇到Errorresolvingtemplate[index],templatemightnotexist这个错误,一般来说,这个错误可能有以下几种原因:模板文件路径错误:需要确认模板文件是否存在,并且其路径是否正确。通常模板文件的路径应该是class......
  • springboot3.1.5+文件上传+文件下载
    idea创建项目springbootdemo-download-upload加上thymeleaf模板maven依赖application.properties配置#thymeleaf页面缓存设置(默认为true)spring.thymeleaf.cache=false#单个上传文件大小限制(默认1MB)spring.servlet.multipart.max-file-size=10MB#总上传文件大小限制(默......
  • 上下文中找不到org.springframework.boot.web.servlet.server.ServletWebServerFactor
    1.问题报错如下:Description:Webapplicationcouldnotbestartedastherewasnoorg.springframework.boot.web.servlet.server.ServletWebServerFactorybeandefinedinthecontext.Action:Checkyourapplication'sdependenciesforasupportedservletwebse......
  • Spring Boot + WebSocket 实时监控,实战来了!
    写在前面此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为需要服务端主动向客户端发送消息,所以很容易的就想到了用WebSocket来实现这一功......
  • 探讨一下spring中bean名字的生成规则
    注入的controller属于内部类,并继承了某个类,一开始以为其名字也是类名首字母小写的字符串,结果错了,实际是父类首字母小写+"."+当前类名,下面我们一起探究一下,spring的bean名字生成规则。spring属性注入查找属性值是在org.springframework.beans.factory.support.DefaultListableBe......
  • springboot高版本(2.5以上)解决跨域问题
    版本说明springboot2.7.17原来代码importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.CorsRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration......
  • 关于spring-boot-starter-parent 3.1.2和3.1.5版本的区别导致的错误
    1.问题在学习黑马程序员SpringBoot3+Vue3全套视频教程时,手动配置springboot项目时,由于之前spring-boot-starter-parent安装的版本是3.1.5,视频要求的是3.1.2,但是之前怎么弄也无法下载到3.1.2(后面已解决,可参考手动配置Maven依赖项),索性就是用了3.1.5版本。但是随即就遇到了问题,在......
  • 运行Springboot测试类查询数据库数据显示白网页
    问题运行Springboot测试类时,查询数据库里面数据显示如下白网页程序报如下错误 解决方案 SpringBoot应用未能启动的原因是它没有找到合适的数据库配置具体来说,它需要一个数据源(DataSource),但未能在你的配置中找出,也没有找到任何嵌入式数据库(H2,HSQL或Derby)以下是几个......
  • SpringBoot集成文件 - 大文件的上传(异步,分片,断点续传和秒传)
    1.知识准备大文件的上传技术手段和普通文件上传是有差异的,主要通过基于分片的断点续传和秒传和异步上传解决。#1.1大文件面临的问题上传速度慢--应对: 分块上传上传文件到一半中断后,继续上传却只能重头开始上传--应对: 断点续传相同文件未修改再次上传,却只能重......