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使用相关推荐

  1. SpringBoot - 使用Assert校验让业务代码更简洁

    文章目录 Pre 有了Validator框架,还要Assert干啥子 org.springframework.util.Assert 对象和类型断言 文本断言 逻辑断言 Collection和map断 ...

  2. Springboot 统一异常处理 Assert @ControllerAdvice

    前言 上一篇SpringBoot 参数检验Assert使用了解了SpringBoot 参数检验Assert的使用,我们是不是可以自定义Assert,来实现自定义异常呢? 用 Assert(断言) 替换 ...

  3. SpringBoot - 优雅的实现【业务校验】高级进阶

    文章目录 Pre 需求 实现三部曲 实体类 Step1 搞两个自定义注解 Step2 搞自定义校验器 Step3 搞验证 小结 源码 Pre SpringBoot - 优雅的实现[参数校验]高级进阶 ...

  4. SpringBoot - 优雅的实现【自定义参数校验】高级进阶

    文章目录 Pre 概述 三部曲 Step1 搞自定义注解 Step2 搞校验逻辑 Step3 使用 Step4 验证 附 int 类型的判断 源码 Pre SpringBoot - 优雅的实现[参数校 ...

  5. SpringBoot - 优雅的实现【参数校验】高级进阶

    文章目录 Pre 概述 参数校验三部曲 Step1 搞依赖 Step2 搞参数校验的实体类 常用的校验注解 Step3 开始验证 存在的问题 使用 统一格式 + 全局异常Handler 优化 源码 P ...

  6. Springboot 启动时Bean初始化,启动异常-Assert.isTrue(condition,message) 报错

    Springboot 启动时Bean初始化启动异常Assert.isTrue(condition,message) 报错,如果 condition为false 则会出现 java.lang.Illeg ...

  7. class没有发布到tomcat_Tomcat 在 SpringBoot 中是如何启动的

    前言[1] 从 Main 方法说起[2] 走进 Tomcat 内部[3] 总结[4] <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> &l ...

  8. SpringBoot源码分析之@Scheduled

    Springboot写上注解@Scheduled就可以实现定时任务, 这里对其源码做一点分析 @Service public class MyScheduled {@Scheduled(cron=&q ...

  9. Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有: 社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等. 二.项目运行 环 ...

最新文章

  1. mysql outfile 路径_MySQL load_file()/into outfile路径问题总结
  2. C语言 数字翻转输出
  3. todo:过几天熟悉下Github
  4. Erlang程序设计
  5. 3.1 go context代码示例
  6. socket buffer套接字缓存
  7. JS执行Promise
  8. 开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?
  9. WAV格式中常见的压缩编码
  10. 8086汇编语言显示一串字符串中ASCII码最大的一个字符
  11. 学python用什么软件-初学 Python 需要安装哪些软件?
  12. 【java笔记】可变参数
  13. 华为自带时钟天气下载_华为手机锁屏时钟软件
  14. 干货:8266在3d打印机上的使用
  15. 模型组合方法-boosting算法详解(机器学习面试必备)
  16. 关于PoE供电,你想知道的这里都有
  17. 解决android手机EditText设置光标颜色,android:textCursorDrawable=@drawable/corner_cursor 华为手机无效果的问题
  18. 2021强网杯 ezmath writeup
  19. Suspicious Package for Mac(pkg程序查看工具)
  20. 基于Reworld、Roblox的团队协作

热门文章

  1. GetCurrentDirectory和SetCurrentDirectory函数
  2. 可视化Python设计工具
  3. cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck
  4. oracle 保留一个记录吗,笔记:Oracle查询重复数据并删除,只保留一条记录
  5. php 获取权限,php 获取权限列表函数_PHP教程
  6. spark-submit
  7. windows更新不支持的硬件_Win10五月大更新细节,解决高CPU占用,不支持AMD
  8. mysql error 1231_解决ERROR 1231 (42000): Variable 'time_zone' can't
  9. postman关闭ssl验证_【第5期】springboot:苹果内购服务端验证
  10. 编译高性能linux so库,关于如何在linux环境下生成a库和so库(改,附图)-Go语言中文社区...