【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
项目简介
该项目是基于SpringBoot+SSM框架的商城项目,涵盖了商城的各个功能,包括用户注册、登录、用户个人信息查询、商城首页轮播图及商品展示、查询商品功能,查看商品详情、加入购物车、下单、清空购物车、查看订单及订单详情、评价功能与商品秒杀业务等,项目一直有更新和维护。
项目架构图
项目技术栈
- 后端:SpringBoot 、SpringMVC、Spring5 、 JWT 、Guava 、BloomFilter
- 中间件:Redis、RabbitMQ、ElasticSearch
- 前端:Vue 、Vuex 、Vue-router、Axios 、CubeUI
- 项目部署:阿里云ECSCentOS7 、 Nginx
- 开发环境及工具:JDK1.8、MySQL8.0、Maven、IDEA、VSCODE 、Jmeter
- 项目地址:http://112.124.18.163/
- GitHub地址
- 前端:https://github.com/MacrossGithub-coder/ShoppingMallFront-Vue
- 后端:https://github.com/MacrossGithub-coder/ShoppingMall
项目相关技术
- 采用Nginx负载均衡策略,提高服务器的并发性能。
- 采用RESTful接口开发规范,对后端返回的Json数据进行了规范处理,方便前后端进行业务交互。
- 引入GuavaCache+BloomFilter进行性能优化,解决缓存穿透问题。使用Redis做缓存提高访问速度和并发量,减少对数据库的访问压力,提高API的QPS。
- 使用JWT+Redis方案实现用户登录权限鉴定和多设备登录,对用户的敏感信息使用MD5加盐加密,对高并发接口地址进行隐藏,提高服务器的安全性。
- 使用RabbitMQ对商品秒杀业务进行解耦,完成异步下单,避免请求大量堆积,缓解服务器的压力,缩短客户端的响应时间。
更新和维护历史
V1
V1.1
- 完善业务
- 新增JWT+Redis实现单设备登录+权限鉴定
- 注销:完善注销业务。
V1.2
- 新增业务
- 使用ElasticSearch实现商品的精准查询和模糊查询
- 更新ElasticSearch数据http://localhost:8888/api/v1/pub/es/update_data
- 查询商品http://localhost:8888/api/v1/pub/es/search_commodity?keyword=apple
- 使用ElasticSearch实现商品的精准查询和模糊查询
V2
V2.1
- 登录功能更新:可自定义设备登录数量,超过允许的最大数量时,将最先登录的设备移出。
- 新增业务:商品秒杀业务
业务需求:在秒杀规定的期限内(活动时间内)进行商品秒杀,要求每一个用户只能参与一次秒杀。
V2.2
- 安全优化:秒杀接口地址隐藏,动态生成接口地址
- 获取秒杀接口地址:http://localhost:8888/api/v1/pri/seckill/get_path?commodity_id=21
- 通过验证码+接口地址隐藏方案防止他人恶意攻击接口,降低服务器压力。
项目截图
- 首页
- 商品详情页
- 订单页面
- 购物车页面
- 评价页面
- 待开发页面:商品秒杀页面和商品全局搜索页面。
总结
这个项目主要是维护的是后端服务器部分,对于前端页面开发更新会比较慢,目前商品秒杀页面和全局搜索页面还没完善,后面出的一系列博客也是针对后端部分,如果有对某个功能模块感兴趣的可以私信我,后续会继续更新相关博客,有疑问的欢迎进行讨论交流。