springboot参数检验,Assert使用
assert:断言是java的一个保留字,用来对程序进行调试,后接逻辑运算表达式,如下:
int a = 0, b = 1; assert a == 0 && b == 0; 使用方法:javac编译源文件,再java -ea class文件名即可。
在springboot中可以使用spring提供的Assert类的方法对前端来的参数进行校验,如:
@GetMapping(value = "/search") public String testAssert(Integer userId){Assert.notNull(userId, "用户信息不能为空");return "ok"; }
这里对userId进行了非空的检验,为空就抛非法参数异常,要是需要对某个对象的某属性进行检验可以参考:https://blog.csdn.net/qq_41633199/article/details/105159128。
异常抛出后,默认情况先会将异常信息传给browser,这样不太友好,我们可以在定义一个全局异常处理器对异常进行捕获,给browser友好的提示,代码如下:
@ControllerAdvice public class GlobalExcHandler {/*** @description:处理由断言,IllegalArgumentException抛出得异常信息* @return java.lang.String*/@ResponseBody@ExceptionHandler(value = IllegalArgumentException.class)public String handleArgError(IllegalArgumentException e){return e.getMessage();} }
测试:
console端出警告:
springboot参数检验,Assert使用相关推荐
- SpringBoot - 使用Assert校验让业务代码更简洁
文章目录 Pre 有了Validator框架,还要Assert干啥子 org.springframework.util.Assert 对象和类型断言 文本断言 逻辑断言 Collection和map断 ...
- Springboot 统一异常处理 Assert @ControllerAdvice
前言 上一篇SpringBoot 参数检验Assert使用了解了SpringBoot 参数检验Assert的使用,我们是不是可以自定义Assert,来实现自定义异常呢? 用 Assert(断言) 替换 ...
- SpringBoot - 优雅的实现【业务校验】高级进阶
文章目录 Pre 需求 实现三部曲 实体类 Step1 搞两个自定义注解 Step2 搞自定义校验器 Step3 搞验证 小结 源码 Pre SpringBoot - 优雅的实现[参数校验]高级进阶 ...
- SpringBoot - 优雅的实现【自定义参数校验】高级进阶
文章目录 Pre 概述 三部曲 Step1 搞自定义注解 Step2 搞校验逻辑 Step3 使用 Step4 验证 附 int 类型的判断 源码 Pre SpringBoot - 优雅的实现[参数校 ...
- SpringBoot - 优雅的实现【参数校验】高级进阶
文章目录 Pre 概述 参数校验三部曲 Step1 搞依赖 Step2 搞参数校验的实体类 常用的校验注解 Step3 开始验证 存在的问题 使用 统一格式 + 全局异常Handler 优化 源码 P ...
- Springboot 启动时Bean初始化,启动异常-Assert.isTrue(condition,message) 报错
Springboot 启动时Bean初始化启动异常Assert.isTrue(condition,message) 报错,如果 condition为false 则会出现 java.lang.Illeg ...
- class没有发布到tomcat_Tomcat 在 SpringBoot 中是如何启动的
前言[1] 从 Main 方法说起[2] 走进 Tomcat 内部[3] 总结[4] <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> &l ...
- SpringBoot源码分析之@Scheduled
Springboot写上注解@Scheduled就可以实现定时任务, 这里对其源码做一点分析 @Service public class MyScheduled {@Scheduled(cron=&q ...
- Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有: 社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等. 二.项目运行 环 ...
最新文章
- mysql outfile 路径_MySQL load_file()/into outfile路径问题总结
- C语言 数字翻转输出
- todo:过几天熟悉下Github
- Erlang程序设计
- 3.1 go context代码示例
- socket buffer套接字缓存
- JS执行Promise
- 开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?
- WAV格式中常见的压缩编码
- 8086汇编语言显示一串字符串中ASCII码最大的一个字符
- 学python用什么软件-初学 Python 需要安装哪些软件?
- 【java笔记】可变参数
- 华为自带时钟天气下载_华为手机锁屏时钟软件
- 干货:8266在3d打印机上的使用
- 模型组合方法-boosting算法详解(机器学习面试必备)
- 关于PoE供电,你想知道的这里都有
- 解决android手机EditText设置光标颜色,android:textCursorDrawable=@drawable/corner_cursor 华为手机无效果的问题
- 2021强网杯 ezmath writeup
- Suspicious Package for Mac(pkg程序查看工具)
- 基于Reworld、Roblox的团队协作
热门文章
- GetCurrentDirectory和SetCurrentDirectory函数
- 可视化Python设计工具
- cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck
- oracle 保留一个记录吗,笔记:Oracle查询重复数据并删除,只保留一条记录
- php 获取权限,php 获取权限列表函数_PHP教程
- spark-submit
- windows更新不支持的硬件_Win10五月大更新细节,解决高CPU占用,不支持AMD
- mysql error 1231_解决ERROR 1231 (42000): Variable 'time_zone' can't
- postman关闭ssl验证_【第5期】springboot:苹果内购服务端验证
- 编译高性能linux so库,关于如何在linux环境下生成a库和so库(改,附图)-Go语言中文社区...