Hibernate Validation与Spring整合各注解的用法Demo
- 转自:https://www.aliyun.com/jiaocheng/1315650.html
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>5.1.1.Final</version>
- </dependency>
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>javax.el-api</artifactId>
- <version>2.2.4</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.web</groupId>
- <artifactId>javax.el</artifactId>
- <version>2.2.4</version>
- </dependency>
与spring整合的配置:
- <!-- 配置 JSR303 Bean Validator 定义 -->
- <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
- @NotNull(message="书籍的姓名不能为空!")
- public String getBookName() {
- return bookName;
- }
- /**
- * 服务端参数有效性验证
- * @param object 验证的实体对象
- * @param groups 验证组
- * @return 验证成功:返回true;严重失败:将错误信息添加到 flash message 中
- */
- @SuppressWarnings("rawtypes")
- public static void validateWithException(Validator validator, Object object, Class<?>... groups)
- throws ConstraintViolationException {
- Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
- if (!constraintViolations.isEmpty()) {
- StringBuffer sb=new StringBuffer();
- for (ConstraintViolation constraintViolation : constraintViolations) {
- sb.append(constraintViolation.getMessage());
- }
- throw new RuntimeException(sb.toString());
- //throw new ConstraintViolationException(constraintViolations);
- }
- }
- 测试类方法:
- @Test
- public void testSaveBook(){
- Book book=new Book();
- book.setBookPrice(100);
- book.setBookStock(10);
- // book.setBookName("norelax");
- validateWithException(validator, book);
- System.out.println(buyService.saveBook(10, null, 10));
- }
- Bean Validation 中内置的 constraint(约束)
- @Null 被注释的元素必须为 null
- @NotNull 被注释的元素必须不为 null
- @AssertTrue 被注释的元素必须为 true
- @AssertFalse 被注释的元素必须为 false
- @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
- @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
- @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
- @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
- @Size(max=, min=) 被注释的元素的大小必须在指定的范围内
- @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
- @Past 被注释的元素必须是一个过去的日期
- @Future 被注释的元素必须是一个将来的日期
- @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
- Hibernate Validator 附加的 constraint
- @NotBlank(message =) 验证字符串非null,且长度必须大于0
- @Email 被注释的元素必须是电子邮箱地址
- @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
- @NotEmpty 被注释的字符串的必须非空
- @Range(min=,max=,message=) 被注释的元素必须在合适的范围内
Hibernate Validation与Spring整合各注解的用法Demo相关推荐
- shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决
shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决 from :http://blog.csdn.net/babys/article/ ...
- Spring系列(九):Spring属性赋值注解@Value 用法介绍
今天给大家分享Spring属性赋值注解@Value 用法,希望对大家能有所帮助! 1.@Value注解的作用 @Value注解的作用主要可以给属性直接赋值.也可以读取配置文件中的值给属性赋值 2.@V ...
- Spring整合Mybatis注解方式
Spring整合Mybatis(注解方式) 目录 Spring整合Mybatis(注解方式) 环境准备 纯注解方式 配置类具体内容 测试类具体内容 环境准备 jar包: Spring所需依赖:spri ...
- spring的@Transactional注解详细用法
概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性. Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型 ...
- SpringCloud学习笔记009---杂七杂八003:spring的@Transactional注解详细用法
概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性. Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型 ...
- Hibernate Validation校验注解详解
在前后端传递数据的时候,往往后端需要校验传递数据的格式,比如用户名的格式,密码是否为空.我们可以在service层编写代码判断,但是当我们在多处需要校验传递来的数据的时候,就会出现大量重复的代码,一旦 ...
- mybatis java类注解式_Spring整合Mybatis注解方式
Spring整合Mybatis(注解方式) 环境准备 jar包: Spring所需依赖:spring-context.spring-aspects.aspectjrt.aspectjweaver.sp ...
- springmvc3.2+spring+hibernate4全注解方式整合(一)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- Struts2、Hibernate、Spring整合所需要的jar包
Struts2.Hibernate.Spring整合所需要的包: Struts2: struts2-core-2.0.14.jar -- Struts2的核心包. commons-logging-1 ...
最新文章
- 软件测试培训分享:软件测试的职业发展方向有哪些
- AI量身定制:如何打造符合“中国特色教育”的内容推荐体系?
- 深入理解Lustre文件系统-第13篇 未来的工作
- 选择排序的思想及其实现
- access查询成绩小于5分_又一所大学公布成绩!5个人中有4人专业课130分以上,厉害了!...
- 加到service中无效_Dataway让SpringBoot不需要Controller、Service、DAO、Mapper
- bzoj1997 [HNOI2010]平面图判定Plana
- 线程的语法 (event,重要)
- 1894. 找到需要补充粉笔的学生编号
- mysql Slave is not configured or failed to initialize properly. You must at least set --server-id
- Linux namespace概述
- java如何关闭一个线程_如何关闭一个java线程池
- 交通灯c语言单片机课程设计,交通灯单片机课程设计C语言.doc
- 使用腾讯云服务器搭建自己网站应该怎么做
- 利用不蒜子统计网站的访问量
- Socket异步服务器,可以监控客户端的状态,功能有,文字测试,服务端向客户端传输屏幕录像(UDP传输)、监控客户端屏幕(UDP传输),抖动用户窗体、发送文件给用户、扫描客户的C盘目录。
- 正大国际:做外盘期货主帐户有什么风险?
- 熬夜整理的C/C++万字总结(一)
- json报错Exception in thread http-bio-8888-exec- java.lang.StackOverflowError
- 将本地图片转为url网络图片
热门文章
- 命名人工智能最高奖,破译德军密码,却被祖国逼得自杀-6月7日
- 系列文章丨AlphaGo Zero为何如此备受瞩目?8位教授的独家讲解
- GPT-3会做小学应用题了!60亿击败1750亿,并非参数越大越好
- 除了芯片,我们还应关注这六大核心技术!
- 前方高能!AI 大牛 LeCun 设想下一个新前沿:摈弃深度学习的所有概率技巧,改而掌握不断转变的能量值...
- 为什么技术进步让我们越来越焦虑不安?
- 麦肯锡AI应用报告:深度学习是蓝海还是深坑?
- 异构智能吴韧:物联网是“伪命题”?智联网才是未来
- 《自然》杂志:关于人类未来的工作,有三个最紧迫的问题
- 为什么 Python 会成为程序员害怕的编程语言?