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

embedded/2025/2/2 11:32:43/

你们好,我是金金金。

在这里插入图片描述

场景

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

在这里插入图片描述

JSR303校验

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

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

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

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

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

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

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

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


http://www.ppmy.cn/embedded/156021.html

相关文章

【C++学习篇】滑动窗口--结合例题讲解思路

目录 1. 例题:最小覆盖子串 1.1 解题思路 2. 方法一代码实现:用kinds来记录t中有效元素的种类,count来记录s中的有效元素种类 3. 方法二:count来记录s中有效元素的个数 ok,这是最后一期关于滑动窗口的学习章节了…

事务处理系统 (Transaction Processing System, TPS)

事务处理系统 (Transaction Processing System, TPS) 是一种专门用于自动化日常业务事务处理的计算机系统。这类系统通常处理大量的结构化数据,如订单处理、支付结算、库存管理等,以支持企业日常的运营和管理。TPS 的核心任务是确保高效、准确地记录和管理大量重复性的事务,…

零信任安全理念

零信任的核心原则是 “永不信任,持续验证”。它不再默认企业内部网络是可信的,而是对每一个访问请求进行严格的身份认证、授权和访问控制。在零信任架构下,访问主体(如用户、设备等)需要通过多因素认证来证明自己的身份…

2025美赛Latex模板可直接运行!O奖自用版

目录 01 预览图02 Latex模板main.texeasymcm.sty 2025年美国大学生数学建模大赛(2025年1月23日)马上开始啦,大家一定要提前准备好模板,Latex或者是Word都可以,这里我整理了之前比赛用到的模板,并进行了一些…

详解共享WiFi小程序怎么弄!

在数字化时代,共享WiFi项目​正逐渐成为公共场所的新标配,它不仅为用户提供了便捷的上网方式,还为商家带来了额外的收入来源。那么共享wifi怎么弄,如何搭建并运营一个成功的共享WiFi项目呢? 共享WiFi项目通过在公共场所…

JavaScript系列(37)-- Service Workers详解

JavaScript Service Workers详解 🔄 今天,让我们深入了解Service Workers,这是一种强大的Web技术,能够实现离线缓存、推送通知和后台同步等功能。 Service Workers基础概念 🌟 💡 小知识:Serv…

nginx实现负载均衡

通过配置 Nginx 实现负载均衡,提高系统的可用性和容错性;分担流量,优化性能和响应速度;便捷地扩展后端服务器,支撑更高的并发;提升系统的安全性,保护后端服务器;灵活地配置负载均衡策…

Java数据结构 (从0构建链表(LinkedList))

在本文中,我们将基于 MySingleLinkedList 类,深入探讨单链表的实现,包括创建、插入、删除等核心操作,同时分享完整的代码示例。单链表是一种灵活的数据结构,适用于处理需要频繁插入和删除操作的场景,例如实…