Spring MVC 参数校验
Spring 4 以上支持JSR303校验API。所以必须要Spring4。
我用Spring boot,所以引入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>
其实这个是Hibernate-validation。
先来一段 java config的bean配置,对于基本类型的方法参数校验必须要先配置这个bean才行:
@Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() {return new MethodValidationPostProcessor();}
然后是对于controller里面方法参数校验,有基本类型的也有对象封装的:
@Validated @RestController public class ComputeController {private final Logger logger = Logger.getLogger(getClass());@Autowiredprivate DiscoveryClient client;@RequestMapping(value = "/add", method = RequestMethod.GET)public Integer add(@RequestParam @DecimalMin(value = "5", message = "name should have between 3 and 10 characters") Integer a,@RequestParam Integer b) {ServiceInstance instance = client.getLocalServiceInstance();Integer r = a + b;logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);// throw new CloudServerException(418, "不可逆转之错误");return r;}@RequestMapping(value = "/add", method = RequestMethod.POST)public Integer add(@RequestBody @Valid Vo v) {return 1;}static @Data class Vo {String name;@DecimalMin(value = "5", message = "name should have between 3 and 10 characters") int num;} }
然后再做一个统一的controller异常处理器,里面增加对ConstraintViolationException的处理,返回出校验注解里面的message就可以了。
关于JSR303的详细使用,可以看看这篇文章
JSR 303 - Bean Validation 介绍及最佳实践
转载于:https://www.cnblogs.com/yish/p/6022088.html
Spring MVC 参数校验相关推荐
- 参数幂等性校验失败_快速入手 Spring Boot 参数校验
1.背景介绍 2.Spring Boot文档中的Validation 3.Hibernate Validator 4.Spring Validator 5.示例 6.补充 <Netty 实现原理 ...
- Spring mvc参数类型转换
1,需求 有时候我们接收到的参数为String类型的,但是我们需要将它们转化为其他类型的如:date类型,枚举类型等等,spring mvc为我们提供了这样的功能. 2,配置文件 在springmvc ...
- Spring Boot参数校验以及分组校验的使用
简介:做web开发基本上每个接口都要对参数进行校验,如果参数比较少,还比较容易处理,一但参数比较多了的话代码中就会出现大量的if-else语句.虽然这种方式简单直接,但会大大降低开发效率和代码可读性. ...
- Spring Boot参数校验
1. 概述 作为接口服务提供方,非常有必要在项目中加入参数校验,比如字段非空,字段长度限制,邮箱格式验证等等,数据校验常用到概念: JSR303/JSR-349: JSR303是一项标准,只提供规范不 ...
- spring boot参数校验 告别校验胶水代码
springboot进行参数校验 文章目录 前言 普通的逻辑代码校验 PathVariable 路径变量校验 JSR规范是什么? springboot-JSR303参数校验 引入参数校验依赖 官网 ...
- @valid 校验_一文带你快速入手 Spring Boot 参数校验
点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 作者:狂乱的贵公子 来源: ...
- Spring MVC 数据校验
数据校验是每个项目中必不可少的模块,Spring MVC 提供了两种数据校验的组件: 基于 Validator 接口进行校验 使用 Annotation JSR-303 标准校验 使用基于 Valid ...
- Spring boot 参数校验
2019独角兽企业重金招聘Python工程师标准>>> 转载 http://www.cnblogs.com/bianzy/p/6639799.html SpringBoot在内部通 ...
- Spring MVC 参数自动绑定List的解决方案
原文链接:https://my.oschina.net/weechang93/blog/779564 最近遇到一个问题,在项目中需要传入一组对象.以前都只遇到过传入一个对象.多个对象或者一组数组的情况 ...
最新文章
- ZeroMQ接口函数之 :zmq_poll - I/O多路技术
- powerdesigner箭头如何画_用Scratch编程画几何图形:如何画多边形
- Windows 技巧篇-设置我的漂亮桌面
- 前端必读:浏览器内部工作原理
- leetCode刷题--两数相加
- cmd 220 ftp 远程主机关闭连接_针对一些弱口令漏洞的解决办法——设置远程管理登录的配置...
- 机器人运维时代已来临?这是真的......
- jQuery Mobile Data 属性
- ios 轻扫手势_轻扫即可快速删除iOS计算器中的数字
- codeforces1208 F. Bits And Pieces(SOS DP)
- DOS命令 format
- 可以获取get post url 传递参数的统一方法
- k - 老鼠走迷宫_《另一个伊甸:超越时空的猫》第21章地图星之塔完整迷宫攻略...
- 梦幻西游新资源的提取一
- tk域名管理后台_TK域名解析教程,dns设置教程
- 特殊字符ascii码
- 体验服官网和平精英维护服务器,和平精英体验服怎么注册?和平精英体验服注册流程...
- MBR膜是什么?起到哪些用途?-世来福
- swoole 捕捉php错误,常见错误 - swoole - yoyo
- C/C++ 控制台高级操作(非常详细)
热门文章
- golang最适合(擅长)做什么
- C#毕业设计——基于C#+vc.net+Access的报名管理信息系统设计与实现(毕业论文+程序源码)——报名管理信息系统
- 量化实战之银行零售资产分池
- web图片裁切插件 cropper.js 详细介绍
- 网站被劫持怎么办?传奇网站打开跳到其他站的解决方法
- 毒蛙(Vuze)执行文件Azureus.exe再分析
- 【html】基础极速笔记
- KONG网关 — KongA管理UI使用
- 人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法
- 使用python批量下载需要的分子的SDF文件