前言

在完成项目前,应该提前分析该项目对于自己的作用,清晰它的定位,以及自己到底要掌握什么?特别需要有个大局观,从面试馆的角度出发思考问题,清晰此项目对于自己的面试有何作用。

一、这个项目的Java后端核心知识覆盖度

结论:覆盖了绝大多数Java后端实习/初级岗位的核心要求。

它实际涉及的关键技术点包括:

✅ 基础必备层

  • Spring Boot 项目搭建、配置(application.yml)

  • MVC架构(Controller/Service/Mapper分层)

  • MyBatis-Plus(BaseMapper、IService、分页插件、公共字段自动填充)

  • RESTful API设计(@GetMapping/@PostMapping/@PutMapping/@DeleteMapping)

✅ 数据库与缓存

  • MySQL 表设计、关联查询

  • 事务处理(@Transactional,尤其在套餐/菜品的多表操作中)

  • Redis(PPT中提到了环境搭建,实际项目中通常用于验证码、购物车、菜单缓存)

✅ 业务通用能力

  • 登录拦截(Filter + Session + ThreadLocal存储用户信息)

  • 文件上传/下载(图片)

  • DTO/VO对象扩展(解决“多表联合返回”问题)

  • 公共字段自动填充(MetaObjectHandler)

  • 分页查询 + 条件查询

  • 批量操作、状态管理(启售/停售、删除前置校验)

✅ 工程能力

  • Maven 依赖管理

  • 项目结构分层(controller/service/mapper/dto/common)

  • 全局异常处理(自定义业务异常)

  • 工具类(ThreadLocal工具、验证码生成)

👉 缺失但常见的高阶点(对你目前实习影响不大):

  • JWT/Token(本项目用Session,可以自己补充理解)

  • 消息队列(如RabbitMQ)

  • 微服务、分布式

👉 结论:对于大三实习生来说,这个项目已经远超“增删改查练习”级别,能达到中等偏上的后端面试准备水平

二、作为简历项目,分量是否足够?面试官会眼前一亮吗?

✅ 分量判断:足够,但不会仅靠名字“惊艳”

  • “瑞吉外卖”是一个知名度较高的培训/教材项目,面试官大概率见过。

  • 不是“分布式/高并发/秒杀”类项目,不会被认为“大神级”,但会被认为“基本功扎实、有完整项目经验”

✅ 能否让人眼前一亮?

取决于你如何写简历 + 如何介绍

❌ 不推荐的写法:
“完成了瑞吉外卖系统的菜品、套餐、订单管理功能”

✅ 更推荐的写法:
“基于Spring Boot + MyBatis-Plus实现外卖后台系统,负责菜品/套餐/订单模块,通过自定义过滤器实现登录拦截,利用ThreadLocal + 元数据对象处理器解决公共字段自动填充问题,并实现批量启售/停售及删除前关联校验。”

关键点:不是“做了什么”,而是“用了什么技术 + 解决了什么问题”。

三、面试官会就哪些知识提问?你需要掌握到什么程度?

🔥 一定会被问的高频问题(你必须能讲清楚)

模块 典型面试题 你需要的掌握程度
登录拦截 登录过滤器如何实现?怎么判断未登录?为什么不直接用拦截器? 能写出核心代码,说出Filter vs Interceptor区别
ThreadLocal 为什么用ThreadLocal存用户id?会不会内存泄漏? 能解释线程隔离、remove()的重要性
公共字段填充 MyBatis-Plus自动填充怎么用?为什么不直接在service里set? 能说清楚MetaObjectHandler + 填充策略
套餐/菜品删除 删除分类前如何校验是否关联菜品? 能讲出“先查关联表再删除”的设计
事务 套餐新增涉及两张表,如何保证一致性? 能说出@Transactional使用场景
分页 MyBatis-Plus分页插件怎么配? 能写配置类、使用Page对象
文件上传 临时文件转存?下载怎么实现? 能说出MultipartFile、流输出

⚠️ 可能会问但可以稍浅的问题

  • Redis用在哪?(验证码、缓存)

  • 为什么用MyBatis-Plus而不是JPA?

  • 项目如何部署?(如果你真的部署过会很加分)

❌ 极少问(但可加分)

  • 订单号生成策略

  • 支付接口设计(本项目没有实现)

👉 你的目标每个自己写的功能,都能说出“输入 → 处理逻辑 → 输出 → 可能的问题”

四、你在写项目时遇到的问题,是否会被问?

✅ 会的,而且这是很好的加分项

面试官非常喜欢问:

“你在做这个项目时遇到过什么比较难的问题?”

你可能会遇到的高频“坑”(也是面试官愿意听的):

  1. 菜品新增时口味数据保存失败

    • 本质:前端传flavors数组,Dish对象收不到

    • 解决:自定义DishDto继承Dish

  2. 删除分类时被菜品/套餐关联导致删除失败

    • 本质:业务约束未在代码中体现

    • 解决:先查Dish/Setmeal表,有数据则抛异常

  3. 公共字段自动填充拿不到登录用户id

    • 本质:HttpSession在MetaObjectHandler中拿不到

    • 解决:ThreadLocal + 过滤器存入

  4. 图片上传后页面不显示

    • 本质:下载接口未实现或路径错误

👉 建议边写边记录你真正踩过的坑,面试时说“我遇到了……我通过……解决”比背八股文强10倍。

五、完成项目后,能否接入AI大模型(如ChatGPT)?

可行性分析(先说结论:可行,但需要合理预期

✅ 可以做的方向(对你实习有价值)

  1. 智能菜品推荐

    • 基于用户历史订单 → 调用大模型API → 返回推荐文案

    • 技术:HTTP调用 + 提示词工程

  2. 自动生成套餐描述

    • 根据菜品列表自动生成套餐介绍

  3. 智能客服/帮助(FAQ)

    • 把常见问题RAG + 大模型

⚠️ 现实限制

  • 需要API Key + 费用(可申请免费额度)

  • 响应延迟(不适合高频请求)

  • 部署复杂度(本地模型需要GPU,云API更现实)

✅ 如果你只是想“简历上写一个AI相关功能”

完全可以做一个“AI菜品描述生成器”

  • 用户点击按钮 → 调用大模型 → 展示推荐语

  • 不改变核心业务,但体现你“愿意探索新技术”

👉 建议顺序

  1. 先把瑞吉外卖完整跑通 + 理解每一行代码

  2. 做1~2个你自己补的小功能(比如导出订单)

  3. 最后再考虑AI大模型作为附加亮点

六、最终总结与建议(对你找实习非常关键)

问题 结论
项目含金量 中上,远超课设水平,够写简历
能否让面试官眼前一亮 取决于你简历描述 + 口头表达
是否会深入问 会,尤其MyBatis-Plus、ThreadLocal、事务
需掌握程度 能自己讲清楚每一个接口的完整流程
遇到的问题是否重要 非常重要,是面试加分核心
接入AI大模型 可行但非必须,建议最后做

🎯 给你的具体行动建议(非常重要)

  1. 不要只跑通项目
    每完成一个模块,自己画一张“请求 → Controller → Service → Mapper → 数据库”的流程图。

  2. 改造1~2个功能
    比如:自己实现一个订单导出Excel(用EasyExcel),比完全照搬教材更有说服力。

  3. 写一份“项目亮点清单”
    列出5个你解决的技术难点(哪怕很小),面试前反复练习讲述。

  4. 不要追求大模型加分而拖慢主项目进度
    先保证这个项目你能独立讲30分钟不卡壳,再考虑AI。

如果你愿意,我可以在你完成项目后,帮你做一份“面试向的项目总结文档”,包含:

  • 每个模块可能被问的问题

  • 你自己写的最优回答

  • 简历中如何描述这个项目

你现在能这样思考,已经比大多数大三学生强很多。加油,这个项目值得你认真做。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐