项目技术亮点
# 项目技术亮点
# 项目描述
完整的前后端不分离全栈外卖管理系统,包含用户前台点餐(APP)和管理员后台(Web),覆盖商品管理、购物车、订单、套餐等核心业务闭环。
# 技术栈
Spring Boot · SSM · MyBatis-Plus · Spring Cache · Redis · ShardingSphere-JDBC · 阿里云短信 SDK · Knife4j · Lombok
# 核心职责与技术亮点
- 全局异常处理:为解决异常散落各处、响应格式不统一问题,自定义
BusinessException配合@RestControllerAdvice集中处理系统异常,实现统一响应格式输出 - ThreadLocal 全局上下文:为解决请求内用户信息重复远程查询问题,基于静态
ThreadLocal封装线程隔离的全局上下文,在请求内部存取用户信息,减少重复远程查询提升接口性能 - 自动填充字段:为解决创建时间、更新时间、操作人等公共字段重复赋值问题,自定义 MyBatis-Plus
MetaObjectHandler配合全局上下文实现公共字段自动填充,消除样板代码 - Redis 缓存优化:为解决高频查询接口响应慢、数据库压力大问题,使用 Spring Cache 注解 + Redis 实现高频数据自动缓存,自定义
RedisTemplateKey 序列化器为StringRedisSerializer解决 Key 乱码,接口响应耗时由 800ms 降至 50ms - 读写分离:为解决单库读写压力大、查询性能瓶颈问题,配置 MySQL 主从同步并集成 ShardingSphere-JDBC 实现业务无侵入的读写分离,提升系统整体吞吐量
- 短信服务接入:为解决验证码发送与防刷问题,二次封装阿里云短信 SDK,通过 Redis 缓存验证码并设置过期时间,防止单手机号重复发送保障业务安全
- 全局登录校验:为解决登录校验逻辑分散、鉴权规则不灵活问题,基于
WebFilter实现全局登录校验,通过AntPathMatcher匹配动态请求路径实现可选鉴权 - 事务管理:为解决多表操作数据不一致问题,使用
@Transactional(rollbackFor = Exception.class)保证多表操作数据一致性,避免脏数据产生
上次更新: 2026/10/10 18:05:45