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

【CI/CD构建】关于不小心将springMVC注解写在service层

背景

之前写一个接口的时候没有察觉到将@RequestBody这个注解带到service层了。
今天提交代码的时候,插件没有检测到这个低级错误,导致试飞构建连maven编译都过不了,maven找不到程序包org.springframework.web.bind.annotation这个包
在这里插入图片描述
在这里插入图片描述

结果

试飞构建不成功

背后原因

如果将@RequestBody写在 Service层会出现的问题

  1. 编译错误:
    Service 层通常是业务逻辑层,它不直接处理 HTTP 请求。@RequestBody是 Spring MVC 用于处理 HTTP 请求的注解,它依赖于 Spring MVC 的请求处理机制。如果在 Service 层使用@RequestBody,会导致编译错误,因为 Service 层没有相应的请求处理上下文来解析这个注解。
  2. 逻辑混乱:
    从设计模式和分层架构的角度来看,这违背了职责分离原则。控制器层应该负责接收和解析 HTTP 请求,将请求数据转换为业务逻辑层(Service 层)可以理解的对象形式,然后将这些对象传递给 Service 层进行业务处理。如果在 Service 层处理请求体的绑定,会使 Service 层与 HTTP 请求细节耦合,导致代码难以维护和测试。例如,在单元测试 Service 层时,不应该涉及 HTTP 请求相关的内容,而@RequestBody的存在会引入这些不相关的因素。
  3. 无法正常工作:
    即使通过一些不合理的方式(如在不适当的上下文中强制加载 Spring MVC 相关的组件)让代码能够编译通过,@RequestBody在 Service 层也无法正确地获取和解析 HTTP 请求体中的数据,因为它不在请求处理的流程中。它缺少 Spring MVC 的DispatcherServlet等组件对请求的分发和处理环境。

结语

希望uu们不会和我一样犯这种低级错误(●´ω`●)ゞ


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

相关文章:

  • 金融项目实战 06|Python实现接口自动化——日志、认证开户接口
  • 14X505-1《火灾自动报警系统设计规范图示》中相关数据和总线制的个人理解
  • CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)
  • Java内存与缓存
  • Java100道面试题
  • 在 Linux 下Ubuntu创建同权限用户
  • 利用Python爬虫按图搜索1688商品(拍立淘):开启智能购物新体验
  • RIP协议在简单网络架构的使用
  • 工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12
  • QT中,在子线程中更新UI,会出现哪些问题,如何避免这种情况发生。
  • 全面掌握AI提示词的艺术:从基础到高级的深度探索
  • 使用Selenium进行网页自动化测试
  • jupyter ai 结合local llm 实现思路
  • 复健第一天之[SWPUCTF 2022 新生赛]奇妙的MD5
  • 【Vue3 入门到实战】1. 创建Vue3工程
  • 信创改造-龙蜥操作系统搭载MySql、Tomcat等服务
  • 微信小程序获取当前页面路径,登录成功后重定向回原页面
  • 使用Flink-JDBC将数据同步到Doris
  • 【华为路由/交换机的telnet远程设置】
  • 重邮+数字信号处理实验七:用 MATLAB 设计 IIR 数字滤波器
  • DATACOM-防火墙-复习-实验
  • Swift语言的软件工程
  • 大语言模型LLM推理框架简单总结
  • 【汇编】汇编编程中的指令传参方式
  • 卡通风格渲染
  • 爬虫逆向学习(十五):Akamai 3.0反爬分析与sensor-data算法逆向经验