spring boot validated的使用
spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。
比如,我们判断一个输入参数是否合法,可以用如下方式
一 基础使用
因为spring-boot已经引入了基础包,所以直接使用就可以了
1 首先在controller上声明需要对数据进行校验
@RequestMapping(value="/url.json",method= {RequestMethod.POST})
@ResponseBody
@Transactional
public Result<?> xxmethod( @RequestBody @Validated XoPO xoPo) throws ParseException, UnsupportedEncodingException {}
2 然后在bean上声明需要被校验的字段
@data
public class XoPO{@validatedprivate List<OrderPerson> personList;@NotNull@Size(max=32,message="code is null")private String code;@NotBlank@Size(max=32,message="product is null")private String product;
}
而后,当输入不能满足条件是,就会抛出异常,而后统一由异常中心处理
也可以用BindingResult,但是用了这个后就必须手动处理异常,侵入了正常的逻辑过程,并不推荐
二 常用注解类型
注意,不要错用了异常类型,比如在int上不可用@size
常用注解如下
@AssertFalse 校验false
@AssertTrue 校验true
@DecimalMax(value=,inclusive=) 小于等于value,
inclusive=true,是小于等于
@DecimalMin(value=,inclusive=) 与上类似
@Max(value=) 小于等于value
@Min(value=) 大于等于value
@NotNull 检查Null
@Past 检查日期
@Pattern(regex=,flag=) 正则
@Size(min=, max=) 字符串,集合,map限制大小
@Validate 对po实体类进行校验
三 嵌套校验
如果一个类中包含了另外一个实体类,那么在上面加上@Validated即可,比如上面的
public class XoPO { @validatedprivate List<PersonDetailPO> personList;}
四 @pathvariable的校验
spring-boot可能目前并不支持对参数的验证:https://jira.spring.io/browse...
public Result<?> xoById( @NotNull @NotBlank @Size(min=10,max=32)@PathVariable(value="accountId") String id) {}
但目前还无法抛出异常, 可能在spring的下一个版本中解决,或者不用@Pathvariable,而在service中
Class XoService{public xoMethon( @NotNull String id){}
}
来解决
spring boot validated的使用相关推荐
- @Validated注解详解,分组校验,嵌套校验,@Valid和@Validated 区别,Spring Boot @Validated
技术栈: spring boot 2.3.3.RELEASE hibernate-validator 文末附项目源代码 目录 简述 项目依赖 全局异常处理类 基础参数校验 实体类 控制类 测试 嵌套参 ...
- [JAVA EE]Spring Boot 控制层:参数传递方法
项目需要参照本人java ee系列前文建立,请读者自行前往本人主页查看. 当然,您自己创建一个项目也是可以的. bean包下的Student.java package com.example.demo ...
- 一份 Spring Boot 项目搭建模板
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 前言 建立一个全新的项目,或者把旧的庞大的项目,进行拆分成 ...
- Spring Boot配置文件学习记录【1】
[1]Spring Boot配置文件 Spring Boot配置层面的知识已学习完.总结一下本周的学习内容,一切都需要从@SpringBootApplication谈起,因为它,做到了真正配置文件的简 ...
- Spring Boot 进行优雅的字段校验,写得太好了!
作者 | 何甜甜在吗 来源 | juejin.cn/post/6913735652806754311 前段时间提交代码审核,同事提了一个代码规范缺陷:参数校验应该放在controller层.到底应该如 ...
- Spring Boot 2.x基础教程:使用Flyway管理数据库版本
之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的 JdbcTemplate(https://blog.didispace.com/spring-b ...
- Spring 与 Spring Boot 中的事件机制
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 温安适 来源 | https://my.osc ...
- Spring Boot如何优雅的校验参数
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「乱敲代码」 做web开发有一点很烦人就 ...
- 【译】Spring Boot 2.0 官方迁移指南
前提 希望本文档将帮助您把应用程序迁移到 Spring Boot 2.0. 在你开始之前 首先,Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了. 在 ...
最新文章
- 程序员感悟----路该怎么走
- c++申请内存空间_有没有想过:malloc分配的内存空间地址连续吗
- PHP 数组遍历 foreach 语法结构
- php phpmailer qq邮箱,QQ邮箱利用PHPmailer发送邮件
- Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
- win10计算机优化技巧,让Win10系统运行更流畅的优化技巧
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
- ipv6远程连接mysql_如何利用IPv6进行远程桌面连接
- 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
- Android6.0之AMS启动app中篇之创建app进程
- ACM的奇计淫巧_扩栈C++/G++
- Java基础题26:(多选题)下列哪些选项属于Java技术体系()
- windows下使用vscode编写运行以及调试C/C++
- 探究添加水印的多种方式
- Kernel crash:总结
- 统计用户在线登录人数
- java 生成pdf 插件下载_java(iText)工具包生成PDF
- 营增利降的美年健康,还能坐稳“民营体检第一股”吗?
- 情人节,程序员送给女朋友的最好礼物!
- Redis(12)----Redis服务器