Java项目拷打
一、校园生活服务平台(苍穹外卖)
1、项目概述
本项目是基于Spring Boot的校园生活服务系统,分为管理端(供校内商家使用)和用户端(微信小程序)。管理端包括员工信息、商品及分类的管理,订单状态跟踪等功能;用户端在线浏览商品,添加购物车及下单等功能。
技术选型:后端采用Spring Boot+MyBatis+MySQL框架,前端基于Vue.js+微信小程序实现,集成Redis缓存提升性能,通过WebSocket实现实时通信,并利用SpringTask定时任务处理订单状态等。
项目亮点
- 登录及身份验证使用JWT令牌技术,用自定义拦截器完成用户认证,通过ThreadLocal优化鉴权逻辑
- 使用Redis缓存高频数据如同分类菜品,并使用SpringCache优化代码,提高系统性能和响应速度
- 使用Nginx用作HTTP服务器,部署静态资源,反向代理和负载均衡
- 通过webSocket实现客户端与服务端的长连接,并实现来单提醒及客户催单等功能
- 使用SpringTask实现订单状态的定时处理,超时自动取消订单等功能
2、核心功能模块
管理端
1、用户登录(JWT、ThreadLocal)
2、员工信息维护
3、商品管理
4、分类管理
5、订单状态跟踪
6、来单/催单提醒(webSocket实时推送)
7、Spring Cache缓存菜品信息
8、定时任务处理超时订单(Spring Task)
用户端(微信小程序)
1、微信登陆
2、商品浏览(Redis缓存)
3、购物车管理
4、下单支付
3、自定义拦截器完成用户认证,通过ThredLocal优化鉴权逻辑这块讲一下具体怎么做的。
4、ThreadLocal使用过多会造成的影响?怎么解决内存泄漏的问题?
底层是ThreadLocalMap,键是弱引用,value是强引用
弱引用,强引用,软引用的区别??
5、redis缓存菜品是怎么缓存的,缓存的维度是什么?key,value如何定义,占用的redis内存大小?
6、nginx这块讲一下
7、说下webSocket怎么做的?webSocket建立连接的过程?
8、springTask怎么实现的超时自动取消订单的功能?取消订单的功能是否有重试?如果取消失败了怎么做?
链接:
https://blog.csdn.net/weixin_46743838/article/details/137340106
https://blog.csdn.net/qq_48625029/article/details/145840564
https://www.nowcoder.com/issue/tutorial?zhuanlanId=j8ZZk0&uuid=98ec6b17fd2348348b1f7f01b17572ec
https://www.cnblogs.com/Rover20230226/p/17447147.html
https://www.cnblogs.com/flameHkngiht/p/18069147