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

苍穹外卖day12

关于新增菜品的完整开发 逻辑

首先控制层

@RestController @RequestMapping("/admin/dish") @Api(tags="菜品相关接口") @Slf4j public class DishController { @Autowired private DishService dishService; /** * 新增菜品 * @param dishDTO * @return */ @PostMapping @ApiOperation("新增菜品") public Result save(@RequestBody DishDTO dishDTO){ dishService.SaveWithFlavor(dishDTO); return Result.success(); } }

接收前端请求,把业务交给 Service,最后返回结果。

Controller不要写业务逻辑,这是三层架构最重要的原则之一。

说清楚一次新增菜品请求是如何从前端流转到 Service 的?

前端点击 保存按钮 根据注解@RequestMapping("/admin/dish")找到对应的控制层

看见@RequestBody 把json格式的数据封装成DTO 也就是dishdto 然后 @postmapping 表示只有post请求能访问

关于一些概念的澄清

为什么要有访问方式的区别?方法不是直接调用的吗?

区分 http请求和普通java代码调用

浏览器 ↓ HTTP请求 ↓ Tomcat ↓ Spring MVC ↓ DishController.save() ↓ Service ↓ Mapper

implements DishService

说明:

实现接口。

@Service

告诉Spring:

这是业务层。

Spring启动的时候:

会创建:

DishServiceImpl

对象。

@Transactional

一句话:

这个方法里的数据库操作,要么全部成功,要么全部失败。

菜品分页查询功能

第一步

明确业务规则

第二步 明确接口设计

请求参数就是前端传来的参数

Query 就是地址后面的不是json格式是查询参数

第三步 代码开发

设计DTO

写代码吧

只说几个需要特别记忆的点

分页查询需要用到pageHeper插件

能看明白就可以

http://www.cnnetsun.cn/news/3323985.html

相关文章:

  • Skinny ORM详解:基于ScalikeJDBC的高效数据库操作指南
  • Jackhammer与Jira集成指南:实现漏洞自动上报到缺陷跟踪系统
  • Xcode 14.0 与 15.4 版本对比:Swift 5.7 到 5.10 的 3 大关键升级点
  • FastAsyncWorldEdit 开发者API指南:如何编写高性能的异步世界编辑插件?
  • 【晨迹相机】HarmonyOS ArkTS 实战:临时授权失效?使用 fileIo 实现临时 datashare 物理文件保存
  • Qwen3-ASR-Toolkit API调用优化:10个提升转录准确率的实用技巧
  • 比较长的字符串中,是否含有特定字符串_repeat
  • BurpSuite 插件迁移实战:Windows 环境 3 步完成配置同步与 Python 插件修复
  • 【转盘决定吧】HarmonyOS ArkTS 实战:阅读页长文滚动、字号控制与双列适配
  • 如何快速实现 JSON API 规范:Neomerx/Json-Api 与 Laravel、Symfony 框架集成终极指南 [特殊字符]
  • Creative View Pager性能优化指南:如何提升滚动流畅度与内存管理
  • 深度视觉象棋AI:如何用YOLOv5技术打造你的专属象棋教练
  • 07-运放应用电路-热电偶测温
  • ibus-libpinyin性能优化:提升输入响应速度的10个技巧
  • SUID国际化(i18n)实现:多语言Material Design应用的构建方法
  • prompt-ops性能优化:让你的提示词训练速度提升2倍
  • Codex模型列表不一致怎么办?CLI登录方式和配置排查
  • Dotto任天堂3DS版体验:掌机上的像素艺术创作指南
  • Midjourney光影对比崩溃预警:当--stylize >800时,对比度梯度溢出阈值临界点(实测v6.1.2内核崩溃日志+规避补丁)
  • DicomObjects COM 8.XX.125.0/32-64
  • mysql 使用逗号拼接一列数据
  • 二分查找的三重变奏:有序区间、旋转最小值与平方根——从“猜数字”到“向量检索”的思维演化
  • 如何快速部署PilotGo-plugin-prometheus:5分钟搭建集群监控系统
  • 马斯克的第一性原理到底是什么:不是鸡汤,是拆到物理层的工程方法
  • AI自动化落地卡点全突破,n8n Agent搭建避坑清单,92%开发者踩过的3类致命配置错误
  • react-native-text-input-mask vs 其他输入库:为什么它是React Native最佳选择?
  • CSharp、Java、Go、Python 枚舉的用法
  • 如何利用Cognito用户同步触发器实现Serverless身份验证自动化:终极指南
  • 具身智能跨模态桥梁:TVA与VLA的互补与渗透(16)
  • NSK LDFT4025-2.5 高刚性双螺母滚珠丝杠技术详解