前言

本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统。教程素材来自慕课网视频教程【https://www.imooc.com/learn/631】。有感兴趣的可以直接看慕课网视频,老师讲的不错,整个系统设计思路也很清晰。本文是我学习Spring时的一手资料,这篇文章先来看看概况,后续会分三篇文章分别介绍:底层Dao接口、Service接口、前端交互。

前台页面用到了Bootstrap提供的结构来实现页面。

系统设计

涉及到的知识点:MySQL、SpringMVC、Spring、MyBatis、jsp、jstl。数据库连接池用的c3p0,日志用的logback。

我在本地开发时数据库装在CentOS7里。编码在windows里做。

概况

开篇主要想分享下学习的一点点感悟,仅仅是一点点感悟,视频看了两遍,觉的老师在前台交互方面的设计思路比较独到,而且讲解比较清晰,比如在页面里先暴漏秒杀地址、倒计时显示秒杀活动开始时间、【ajax】请求时把业务参数直接放在路径里、用模态对话框模拟用户登录。 视频在编写程序的同时还给你提醒什么地方我们应该查询官方文档。查询官方文档配置xml的同时还要搞清楚这个配置背后都做了那些工作,比如spring-web.xml中<mvc:annotation-driven/>都做了那些工作,这是springMVC为我们默认自动注册了DefaultAnnotationHandlerMapping、AnnotationMethodHandleAdapter。同时提供了数据绑定、数字、日期的格式、xml、json默认读写支持。

细节方面分享了如何设计合理的Restful接口、暴漏秒杀地址、实现秒杀、以及秒杀接口返回给客户端时的实体结构、枚举类型等等。

先贴几张图看看实现效果:

1、模拟用户登录

用户登录在客户端cookie里保存了用户的手机号,页面初始化时读取这个cookie来判断用户是否登录。

2、秒杀列表

列表页直接读取数据库所有记录

3、秒杀详情

活动未开始,显示倒计时效果

活动开始,显示秒杀按钮。秒杀按钮是在程序里用js判断活动是否开始,开始时直接创建一个按钮并且附加click时间实现秒杀逻辑

重复秒杀

总结

想入门SpringMVC系列的,这个教程值得推荐。

附上源码地址:https://github.com/garfieldzf8/seckill

基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】的更多相关文章

  1. 基于SpringMVC+Spring+MyBatis实现秒杀系统【客户端交互】

    前言 该篇主要实现客户端和服务的交互.在第一篇概况里我已经贴出了业务场景的交互图片. 客户端交互主要放在seckill.js里来实现.页面展现基于jsp+jstl来实现. 准备工作 1.配置web.x ...

  2. 基于SpringMVC+Spring+MyBatis实现秒杀系统【业务逻辑】

    前言 该篇主要实现秒杀业务层,秒杀业务逻辑里主要包括暴露秒杀接口地址.实现秒杀业务逻辑.同时声明了三个业务类:Exposer.SeckillExecution.SeckillResult. Expos ...

  3. 基于SpringMVC+Spring+MyBatis实现秒杀系统【数据库接口】

    前言 该篇教程主要关注MyBatis实现底层的接口,把MyBatis交给Spring来托管.数据库连接池用的c3p0.数据库用的MySQL.主要有2个大类:秒杀商品的查询.秒杀明细的插入. 准备工作 ...

  4. 手把手教你使用VUE+SpringMVC+Spring+Mybatis+Maven构建属于你自己的电商系统之vue后台前端框架搭建——猿实战01

            猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,跟着教程走下来,变身猿人找到工作不是 ...

  5. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十二天】(系统架构讲解、nginx)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  6. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十天】(单点登录系统实现)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  7. Idea SpringMVC+Spring+MyBatis+Maven调整【转】

    Idea SpringMVC+Spring+MyBatis+Maven整合   创建项目 File-New Project 选中左侧的Maven,选中右侧上方的Create from archetyp ...

  8. SpringMVC+Spring+MyBatis+Maven调整【转】

    Idea SpringMVC+Spring+MyBatis+Maven整合   创建项目 File-New Project 选中左侧的Maven,选中右侧上方的Create from archetyp ...

  9. SpringMVC+Spring+MyBatis个人技术博客源码

    项目描述 Hi,大家好,又到了源码分享时间啦,今天我们分享的源码一个<个人技术博客>,该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习.有了这个源码,直接买 ...

随机推荐

  1. sudo -iu [用户] 命令无法正常切换到用户目录的原因

    今天干活时遇到一个问题,在sudo -iu [用户]命令执行后无法切换到用户对应的[ 用户@机器 ~$ ]命令行 .bashrc已正常配置为 if [ -f /etc/bashrc ]; then . ...

  2. python_flask 基础巩固 (DEBUG模式)

    默认情况下flask不会开启DEBUG模式,开启DEBUG模式后,flask会在每次保存代码的时候自动的重新载入代码,并且如果代码有错误,会在终端进行提示. 开启DEBUG模式有四种方式: 1.直接在 ...

  3. 初识大数据(二. Hadoop是什么)

    hadoop是一个由Apache基金会所发布的用于大规模集群上的分布式系统并行编程基础框架.目前已经是大数据领域最流行的开发架构.并且已经从HDFS.MapReduce.Hbase三大核心组件成长为一 ...

  4. _ZNote_Qt_添加图标方法

    简单来说就两步: 将icns图标添加入资源文件,例如picture.icns .pro文件中添加 (图标) ICON = picture.icns 程序中添加(程序窗口上显示) setWindowIc ...

  5. Git的分支管理

    0.引言 本文参考最后的几篇文章,将git的分支管理整理如下.学习git的分支管理将可以版本进行灵活有效的控制. 1.如何建立与合并分支 1.1分支的新建与合并指令 新建分支 newBranch,并进 ...

  6. Python之旅Day9 进程&线程

    进程 线程 多进程 多线程

  7. jQuery常用选择器总结

    jQuery常用选择器总结: 我们都知道jQuery是JavaScript(JS)的框架,它的语法简单使用方便,被广大开发人员青睐.现在我就它常用的并且十分强大的选择器的方式,做一个总结.鉴于它的选择 ...

  8. BeanPostProcessor —— 连接Spring IOC和AOP的桥梁

    之前都是从大Boss的视角,来介绍Spring,比如IOC.AOP. 今天换个视角,从一个小喽啰出发,来加深对Spring的理解. 这个小喽啰就是, BeanPostProcessor (下面简称 B ...

  9. 第一节:学会Java前提-手把手教你配置JDK环境变量

    前言 大家好,今天写一遍学会Java前提-手把手教你配置JDK环境变量的概述,希望你们喜欢 下载地址 下载jdk,和eclipse就比较简单了,提供JDK 9 地址: http://www.oracl ...

  10. [Postman]授权(11)

    授权过程将验证您是否有权从服务器访问所需的数据.发送请求时,通常必须包含参数以确保请求具有访问权限并返回所需数据.Postman提供的授权类型使您可以轻松处理Postman本机应用程序中的身份验证协议 ...