千家信息网

SpringBoot如何优雅的进行参数校验

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章将为大家详细讲解有关SpringBoot如何优雅的进行参数校验,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。参数的合法性直接影响到程序的安全和
千家信息网最后更新 2025年01月23日SpringBoot如何优雅的进行参数校验

这篇文章将为大家详细讲解有关SpringBoot如何优雅的进行参数校验,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

参数的合法性直接影响到程序的安全和性能,因此在进行相关操作前必须检测对象是否为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 可以捕获不同类型的错误,并且根据错误的类型给前台用户相应的反馈。

关于SpringBoot如何优雅的进行参数校验就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

参数 代码 实例 优雅 合法 一行 内容 对象 工具 文章 更多 用户 知识 篇文章 类型 错误 分类 验证 不同 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 关于网络安全的诗歌朗诵视频 数据库 计算次数语句 应急响应网络安全的发现下载 CSGO连接至服务器后回到主页 东软数据库审计 如何强制获得服务器管理员权限 速达软件数据库登录名 服务器连接怎么删除 信号通路调控关系数据库 oracle数据库跟踪 面对网络安全学生应该怎么做 服务器硬盘直接拔下会损坏吗 湖南大学网络安全硕士就业去向 苹果服务器崩溃对手机有什么影响 虚拟服务器如何设置 天天飞车买服务器多少钱 江苏省公安厅网络安全总队杨 艺恩电影数据库划分标准 武汉软件开发方案 导入数据库文件太大怎么办 服务器网卡的mac地址怎么查看 php导入excel表格数据库 pi实时数据库 安装 一叶知秋吉他谱软件开发 铜陵柑覆网络技术有限公司 数据库 函数依赖集投影 软件开发经历的各阶段的 阴阳师的服务器 黔程出行软件开发者 怎样在国际服里面换服务器
0