通过SpringBoot构建一个简单的在线商城系统,主要功能包括:用户注册、用户登录、添加商品、浏览商品、商品详情页、个人主页、余额充值、购买商品、查看订单等。本文主要介绍业务流程和项目架构,为节省篇幅,完整代码不做详细解释。完整项目可以在GitHub中下载,链接:在线商城系统。
礼多多新零售系统开发,礼多多新零售商城开发、礼多多新零售app开发、礼多多新零售软件开发、礼多多新零售模式开发、礼多多新零售系统平台开发、礼多多新零售定制开发、礼多多新零售系统开发案例、礼多多新零售现成系统开发、礼多多新零售系统开发费用。
软件与开发环境
操作系统:Windows10
开发软件: IntelliJIDEA 2021.2.3,Navicat Premium 15.0.23
编程语言:JDK1.8,MySQL 8.0.27
浏览器:Firefox98.0.2
业务流程
业务核心:库存的处理
用户购买商品后,减少库存和用户余额,后记录购买记录,三者组成一个完整的事务,避免超卖和少卖。
业务难点:竞争
通过使用事务和行级锁解决。事务流程:开启事务->更新库存->更新余额->插入购买记录->提交。
应用技术
项目管理:Maven
开发语言:Java、MySQL、HTML、CSS、JavaScript
框架:SpringBoot、Mybatis、jQuery
设计模式:单例模式、包装器模式
项目开发
DAO:通过mybatis-generator实现DOMapper和DAO接口。
MVC:通过model和viewobject之间的转换,避免敏感信息(密码、余额等)透传给前端。其中商品价格用BigDecimal存储,避免精度损失。
Web:通过Restful接口和前端交互,前端使用ajax接收数据。通过@CrossOrigin和在ajax中设置xhrFields避免跨域问题。
Service:通过Spring管理service,通过Spring的声明式事务进行事务控制。
Exception:通过enum设置错误码和错误信息,在BaseController.java中捕获异常。
用户登录:校验手机号和密码,成功登录后session中存放IS_LOGIN和LOGIN_USER。
商城界面:展示商品,点击单个商品后进入商品详情页,通过GET获得单个商品信息。
下单:判断用户是否登录(IS_LOGIN)、校验(库存,余额等)、减商品库存和用户余额、添加购买记录。