当前位置: 首页 > article >正文

Java后端Controller参数校验的一些干货及问题~

你们好,我是金金金。

在这里插入图片描述

场景

先看如下一张图,这是一个控制器里面的一个方法,第一眼是不是就感觉代码量非常多?而且随着参数越来越多 你则需要写nif else来完成校验,属实是麻烦而且不够优雅

在这里插入图片描述

JSR303校验

仔细认真看,更容易理解吸收,想想什么层面需要做校验呢?

  • 前端请求后端接口传输参数,是在controller中校验还是在Service中校验?

都需要校验,只是分工不同。

  • Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验,比如:是否是符合一定的日期格式,等。

  • Service中要校验的是业务规则相关的内容,比如:课程已经审核通过所以提交失败。

  • Service中根据业务规则去校验不方便写成通用代码,Controller中则可以将校验的代码写成通用代码。

  • Service层,校验是和业务逻辑紧密相关的。因为不同的业务场景下,校验规则可能不同,很难将这些规则抽象成通用的代码。 比如,在处理订单的Service层中,校验的逻辑可能会涉及多个业务条件和数据库查询,这些条件可能只在特定的业务场景下适用,难以通用化。

    • 所以一般service层都是手动if校验


http://www.kler.cn/a/514038.html

相关文章:

  • map和set的使用(一)详解
  • python转转商超书籍信息爬虫
  • 华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包
  • 51c~SLAM~合集1
  • 【JVM-9】Java性能调优利器:jmap工具使用指南与应用案例
  • win32汇编环境,对多行编辑框添加或删除文本
  • element-plus中的table为什么相同的数据并没有合并成一个
  • Ollama能本地部署Llama 3等大模型的原因解析(ollama核心架构、技术特性、实际应用)
  • html转义符+h5提供的新标签
  • HTML `<head>` 元素详解
  • PHP同城配送小程序
  • 《LT8712X》Type-c转HDMI2.0芯片
  • Spring Boot AOP实现动态数据脱敏
  • vue3 通过ref 进行数据响应
  • Vue 引入及简单示例
  • Java中的错误与异常详解
  • Excel 实现文本拼接方法
  • 【elasticsearch】elasticsearch基本知识
  • Vue3+Elementplus物流订单信息跟踪管理
  • 【环境搭建】conda及pip配置清华镜像源
  • delete the Node
  • Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘
  • 3D 模型格式转换之 STP 转 STL 深度解析
  • Springboot应用开发配置类整理
  • 如何配置安全的香港邮件服务器?
  • Solana 套利机器人原理