【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍

项目简介

该项目是基于SpringBoot+SSM框架的商城项目,涵盖了商城的各个功能,包括用户注册、登录、用户个人信息查询、商城首页轮播图及商品展示、查询商品功能,查看商品详情、加入购物车、下单、清空购物车、查看订单及订单详情、评价功能与商品秒杀业务等,项目一直有更新和维护。

项目架构图

【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍

项目技术栈

  • 后端: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

V2

V2.1

  • 登录功能更新:可自定义设备登录数量,超过允许的最大数量时,将最先登录的设备移出。
  • 新增业务:商品秒杀业务
    业务需求:在秒杀规定的期限内(活动时间内)进行商品秒杀,要求每一个用户只能参与一次秒杀。

V2.2

  • 安全优化:秒杀接口地址隐藏,动态生成接口地址
    • 获取秒杀接口地址:http://localhost:8888/api/v1/pri/seckill/get_path?commodity_id=21
    • 通过验证码+接口地址隐藏方案防止他人恶意攻击接口,降低服务器压力。

项目截图

  • 首页
    【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
  • 商品详情页
    【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
  • 订单页面
    【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
  • 购物车页面
    【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
  • 评价页面
    【SpringBoot+SSM框架的移动端Apple Store 1】项目基本介绍
  • 待开发页面:商品秒杀页面和商品全局搜索页面。

总结

这个项目主要是维护的是后端服务器部分,对于前端页面开发更新会比较慢,目前商品秒杀页面和全局搜索页面还没完善,后面出的一系列博客也是针对后端部分,如果有对某个功能模块感兴趣的可以私信我,后续会继续更新相关博客,有疑问的欢迎进行讨论交流。