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 参数校验相关推荐

  1. 参数幂等性校验失败_快速入手 Spring Boot 参数校验

    1.背景介绍 2.Spring Boot文档中的Validation 3.Hibernate Validator 4.Spring Validator 5.示例 6.补充 <Netty 实现原理 ...

  2. Spring mvc参数类型转换

    1,需求 有时候我们接收到的参数为String类型的,但是我们需要将它们转化为其他类型的如:date类型,枚举类型等等,spring mvc为我们提供了这样的功能. 2,配置文件 在springmvc ...

  3. Spring Boot参数校验以及分组校验的使用

    简介:做web开发基本上每个接口都要对参数进行校验,如果参数比较少,还比较容易处理,一但参数比较多了的话代码中就会出现大量的if-else语句.虽然这种方式简单直接,但会大大降低开发效率和代码可读性. ...

  4. Spring Boot参数校验

    1. 概述 作为接口服务提供方,非常有必要在项目中加入参数校验,比如字段非空,字段长度限制,邮箱格式验证等等,数据校验常用到概念: JSR303/JSR-349: JSR303是一项标准,只提供规范不 ...

  5. spring boot参数校验 告别校验胶水代码

    ​ springboot进行参数校验 文章目录 前言 普通的逻辑代码校验 PathVariable 路径变量校验 JSR规范是什么? springboot-JSR303参数校验 引入参数校验依赖 官网 ...

  6. @valid 校验_一文带你快速入手 Spring Boot 参数校验

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 作者:狂乱的贵公子 来源: ...

  7. Spring MVC 数据校验

    数据校验是每个项目中必不可少的模块,Spring MVC 提供了两种数据校验的组件: 基于 Validator 接口进行校验 使用 Annotation JSR-303 标准校验 使用基于 Valid ...

  8. Spring boot 参数校验

    2019独角兽企业重金招聘Python工程师标准>>> 转载  http://www.cnblogs.com/bianzy/p/6639799.html SpringBoot在内部通 ...

  9. Spring MVC 参数自动绑定List的解决方案

    原文链接:https://my.oschina.net/weechang93/blog/779564 最近遇到一个问题,在项目中需要传入一组对象.以前都只遇到过传入一个对象.多个对象或者一组数组的情况 ...

最新文章

  1. ZeroMQ接口函数之 :zmq_poll - I/O多路技术
  2. powerdesigner箭头如何画_用Scratch编程画几何图形:如何画多边形
  3. Windows 技巧篇-设置我的漂亮桌面
  4. 前端必读:浏览器内部工作原理
  5. leetCode刷题--两数相加
  6. cmd 220 ftp 远程主机关闭连接_针对一些弱口令漏洞的解决办法——设置远程管理登录的配置...
  7. 机器人运维时代已来临?这是真的......
  8. jQuery Mobile Data 属性
  9. ios 轻扫手势_轻扫即可快速删除iOS计算器中的数字
  10. codeforces1208 F. Bits And Pieces(SOS DP)
  11. DOS命令 format
  12. 可以获取get post url 传递参数的统一方法
  13. k - 老鼠走迷宫_《另一个伊甸:超越时空的猫》第21章地图星之塔完整迷宫攻略...
  14. 梦幻西游新资源的提取一
  15. tk域名管理后台_TK域名解析教程,dns设置教程
  16. 特殊字符ascii码
  17. 体验服官网和平精英维护服务器,和平精英体验服怎么注册?和平精英体验服注册流程...
  18. MBR膜是什么?起到哪些用途?-世来福
  19. swoole 捕捉php错误,常见错误 - swoole - yoyo
  20. C/C++ 控制台高级操作(非常详细)

热门文章

  1. golang最适合(擅长)做什么
  2. C#毕业设计——基于C#+vc.net+Access的报名管理信息系统设计与实现(毕业论文+程序源码)——报名管理信息系统
  3. 量化实战之银行零售资产分池
  4. web图片裁切插件 cropper.js 详细介绍
  5. 网站被劫持怎么办?传奇网站打开跳到其他站的解决方法
  6. 毒蛙(Vuze)执行文件Azureus.exe再分析
  7. 【html】基础极速笔记
  8. KONG网关 — KongA管理UI使用
  9. 人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法
  10. 使用python批量下载需要的分子的SDF文件