SpringBoot 如何优雅的进行参数校验
2020-01-13 00:24
363 查看
参数的合法性直接影响到程序的安全和性能,因此在进行相关操作前必须检测对象是否为null,是否为blank,是否被初始化等等。
我们先来看看SpringBoot 是如何来检验参数的。
验证总是摆在第一位。
再来分析下Assert 类。 Assert 其实是一个非常简单的工具类。
Assert 类作为一个工具类,不应该被实例化, 因此该类使用 abstract 进行修饰。 没错这就是经常遇到的面试题目, abstract 类不能被实例化。
除此之外 将构造方法使用 private 进行修饰也可以防止类被实例化,这也是常用的编程技巧之一。
Assert 类在SpringBoot 项目中被广泛使用。
为啥使用Assert 类? 因为使用Assert 能使得代码更加简洁明。三行代码变成一行代码,并且Controller 类不需要依赖具体的Exception 类,少依赖一种Exception, import语句减少一行。
@RequestMapping("edit") @RequiresPermissions(value = "fsdd-2") public String edit(@RequestParam @NonNull Long id, Model model) { Classify classify = classifyService.findById(id); /* if(classify == null){ throw new EntityNotFoundException("被修改的分类不能为空" + id); }*/ Assert.notNullEntity(classify, "被修改的分类不能为空" + id); model.addAttribute("classify", classify); return "manage/ClassifyController/edit"; }
修改某条记录时 , id 参数是必须的,并且id不能为空, 并且根据id查询出来的实体对象也不能为空。 当然还必须处于登陆状态,并且拥有相关的角色权限。
到此我们只是验证了参数是否合法并且抛出了异常,但是并没有告诉用户后台发生了什么事情。
使用 @ControllerAdvice 和 @ExceptionHandler 可以捕获不同类型的错误,并且根据错误的类型给前台用户相应的反馈。
转载于:https://my.oschina.net/qidis/blog/3069790
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- SpringBoot如何优雅的校验参数
- SpringBoot如何优雅的处理校验参数的方法
- 如何在Spring Boot项目使用参数校验
- 如何在Spring Boot项目使用参数校验
- 如何在 Spring/Spring Boot 中做参数校验?你需要了解的都在这里!
- 如何在 Spring/Spring Boot 中做参数校验?你需要了解的都在这里!
- 详解如何在Spring Boot项目使用参数校验
- 今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密
- Spring boot进行参数校验的方法实例详解
- springboot+dubbo+validation 进行rpc参数校验的实现方法
- SpringBoot框架中URL参数如何进行Base64加密解密
- springboot中使用hibernate-validator进行参数校验
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- 使用Eclipse对SpringBoot项目如何进行打包部署
- spring boot 六 如何优雅的使用mybatis
- SpringBoot如何优雅地处理全局异常详解
- SpringBoot中通过实现WebMvcConfigurer完成参数校验
- spring boot(六):如何优雅的使用mybatis
- 解决在springboot+mybatis+postgresql时,数据库字段类型为json时,如何与mybatis进行映射
- Spring Boot系列(六):如何优雅的使用mybatis