基于 SSM 的网上购物系统(源码 + 开发文档 已开源)

你能做到的,比想像的更多。 

一、项目背景

这个项目是自己从四月份开始学习 Spring + SpringMVC + MyBatis 后的一次项目实践,恰好赶上学校的数据库暑期课程实践,跟老师申请后更改到了这个课题——网上购物系统。之所以选择这个课题的原因主要是因为其具有比较好的可发挥性和可扩展性,对于这种类似网上商城的系统,我们不仅可以在商品加载和商品发布等比较基础的功能实现系统的性能优化,还可以在这个基础上扩展一些技术含量更高的功能,比如在高并发下的秒杀系统等都可以基于这个系统来进行扩展。

项目总共历时一个多月,包含网上购物商城和管理后台两个部分,在项目的开发过程中采取了边开发边优化的方式来进行, 比较多的技术也是现学现卖,之前有在别人的项目上见过就拿来自己对项目优化试试,但比较遗憾的是因为项目开发时间的限制,所以这个项目的开发没有采用前后端分离的方式来进行开发,前端直接使用了JSP来进行开发。

因为项目整个的项目开发还是比较规范的,而且代码的结构也还是比较清晰,同时采用了现在比较普遍的 SSM 框架来进行项目的开发,所以整个项目的可学习性还是比较高的。

 

二、项目介绍

此项目是实现商品的从后台填写商品信息、商品上架(立即上架 或 定时上架),到前台用户可见可商品后进行购买(购物车 或 立即购买)后的待结算、待支付状态,再到用户支付(模拟支付,暂时没有实现)后商品的状态为待发货,后台管理人员进行发货操作后填写运单号码并确认发货,再到用户收到商品后点击确认收货、评价订单,最后订单状态已完成的整个在线购物的商品交易流程。

商品上架(后台)-> 待结算(用户)-> 待支付(用户)-> 待发货(后台)-> 待收货(用户)-> 待评价(用户)-> 已完成(用户)

同时此项目配备了完善的开发文档( 60+ 页 ),涵盖了整个系统的需求分析、功能分析、系统设计、数据库设计、系统模块设计和系统实现等内容,可以为项目的学习者或使用者提供很好的辅助作用。

 

三、技术栈

Spring + SpringMVC + MyBatis + Redis + RabbitMQ + Quartz + Bootstrap

后端使用 SSM 作为主框架进行开发,集成 Redis 内存缓存、RabbitMQ 消息队列和 Quartz 作业调度框架。

前端使用 JSP 和 Bootstrap 来进行项目开发。

 

四、项目亮点

1)使用 Spring + SpringMVC + MyBatis + Redis + RabbitMQ + Quartz + Bootstrap 进行项目整合开发

2)使用 Redis 实现购物车功能和商品信息的数据缓存功能,提高系统的响应速度并降低数据库的访问压力

3)使用 RabbitMQ 实现订单的异步化处理和系统的日志处理,提升系统对用户操作的响应速度并降低模块之间的耦合程度

4)使用 Spring AOP 在不侵入系统代码的基础上实现系统的日志收集权限校验数据埋点等功能

5)使用 Quartz 实现商品的自定义定时上架功能,为用户提供更高的操作灵活性

6)使用数据库索引优化来提升数据查询速度

 

五、项目源码

GitHub:https://github.com/TIYangFan/OnlineShoppingMall( 如果觉得有帮助到你的话请帮我 star ~ ^_^)

 

六、结语

最后,为了便于大家理解这个项目的源码,因此在接下来的几天里我会陆续的发相关的博文来对这个项目的代码结构和比较主要的几个功能的实现进行讲解,真心希望这个项目以及相关的文章可以帮助到大家,因为我也是一个小白,在不断的踩坑中才完成了这个项目,如果可以希望能够帮助大家更快的实现自己的第一个 SSM 项目。

同时马上自己就会回到学校进行继续的学习,在下个学期的四个月里我将会继续坚持每周刷题,不断探索新的技术。经历过这次的实习,自己对技术的看法也有了不一样的变化,同时前方的道路也越来越明朗起来,目前下个学期的打算是进行 GO 的相关学习,同时争取通过的自己的努力一步一步的去实现一个自己的 GO 的数据库(这个想法是通过跟阿里的学长沟通后出现的,他当时自己实现的话大概是 5000 行左右的代码量,同时我在网上也看到过别人用 golang 实现的数据库,大概的代码量在 7500 行左右),同时在实现这个数据库的同时,我会坚持实习期间在公司写日报的形式,将自己实现的每一步都通过博文记录下来,争取能够让大家也通过阅读我的博文,入门 golang 同时实现属于自己的一个数据库。

虽然这个工作量看起来还是蛮大的,我之前也仅仅是了解过 golang 的相关语法,却没有真正的使用它去开发过,但是通过朋友和学长的相关引荐,golang 这门语言得天独厚的高并发优势必然会使他在今后的发展中成为一个至关重要的技术点,还有的话如果想要自己实现一个数据库的话,最基本的就是要对现有的 MySql 等数据库及其相关的数据库引擎都有一个相对比较深刻的理解,所以在这个开发的过程中,也是对数据库进行再一次的深入学习(暑期的时候在工作的空余时间也对数据库进行了一次比较全面的学习,但是如果想要自己去实现它,可能这些还是远远不够的),所以如果可以完成,那么会是对自己能力的一次质变的提升,但是有了之前三个项目几万行代码的基础,我觉得自己还是可以坚持完成这个目标的。

最后如果你也是一名 21届的学生,或者也是一名对技术充满热爱但却总是不知从何下手的小白,那么你可以关注我,我们可以一同进步,希望我通过记录自己一步一步、一点一滴前进的过程能够帮助激励到一同前进的你们,还是开篇的那句话“ 你能做到的,比想像的更多 ”。

 

你可能感兴趣的:(开源代码项目,Java,web)