springboot秒杀课程学习整理1-6
1)活动模型设计
配饰秒杀的模型(promoModel)id promoName startDate(建议使用joda-time) endDate itemId promoItemPrice
数据库(promo)id promo_name start_date item_id promo_item_price end_date
使用mybatis-generator生成对应的文件(这里生成的date是java默认的)
2)创建PromoService
添加通过itemId查询活动
3)在order_info表添加promo_id,用于判断是否该单是否是通过秒杀下的单
4)在itemVO里需要添加promoId promoPrice startDate,promostatus,用于给前端返回数据让前端判断是否显示秒杀页面
5)下单时在orderServiceImpl做校验是否有promoId如果有则使用秒杀的价格及秒杀的总价格入库
课程总结:
使用的springboot+mybatis完成javaweb项目的搭建
电商秒杀系统的基本流程及代码实现

出错调试:先确认问题点,环境问题,ui问题,接口问题,服务问题,配置问题
调试:断点调试,日志调试
扩展:多商品,多库存,多活动模型怎么实现?
遗留问题:如何支撑亿级的秒杀流量?

有很多细节记录在代码的注释上,最后感谢慕课网的龙虾三少的秒杀课程。
github地址:https://github.com/llcMite/java-miaosha.git
springboot秒杀课程学习整理1-6的更多相关文章
- springboot秒杀课程学习整理1-1
1)新建一个maven工程quickStart,然后在pom文件里添加依赖 <parent> <groupId>org.springframework.boot</gro ...
- springboot秒杀课程学习整理1-5
1)交易模型设计 交易模型(用户下单的交易模型)OrderModel id(String 交易单号使用String), userId,itemId,amount(数量),orderAmount(总金额 ...
- springboot秒杀课程学习整理1-3
1)实现手机验证码功能,用户注册功能,用户登入功能(这里讲开发流程,及本人遇到的问题,具体实现请看代码) 1.拦截请求,获取请求参数(这里的consumes是个常量,可以定义在baseControll ...
- springboot秒杀课程学习整理1-4
1)商品模型设计 (应该是先设计商品的model,然后才是数据库表) 模型字段(id,title,price(double),stock(库存),description,sales,imgUrl) 创 ...
- springboot秒杀课程学习整理1-2
1)从数据库到前端,做了三层转换,最后统一返回给前端的格式 DO-> model: 放在service中,目的是为了组装来自于数据库的数据,有些字段来自于不同的表的取,这一层相当于真正的业务模型 ...
- SpringBoot源码学习系列之异常处理自动配置
SpringBoot源码学习系列之异常处理自动配置 1.源码学习 先给个SpringBoot中的异常例子,假如访问一个错误链接,让其返回404页面 在浏览器访问: 而在其它的客户端软件,比如postm ...
- 201671010450-姚玉婷-实验十四 团队项目评审&课程学习总结
项目 内容 所属科目 软件工程http://www.cnblogs.com/nwnu-daizh 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11093584. ...
- 金生芳-实验十四 团队项目评审&课程学习总结
实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 作业学习目标 (1)掌握软件项目评审会流程(2)反思总结课 ...
- 201671030117 孙欢灵 实验十四 团队项目评审&课程学习总结
项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...
随机推荐
- opencv学习之路(41)、人脸识别
一.人脸检测并采集个人图像 //take_photo.cpp #include<opencv2/opencv.hpp> using namespace cv; using namespac ...
- Bresenham算法
1 算法原理 基本原理从某处摘得:设直线方程为yi+1=yi+k(xi+1-xi)+k.假设列坐标象素已经确定为xi,其行坐标为yi.那么下一个象素的列坐标为xi+1,而行坐标要么为yi,要么递增1为 ...
- 信息安全之路-web-xss学习(3)
DOM型xss DOM型xss属于在客户端执行的xss,并不经过服务端解析.测试过程如下 Low型: 源代码: <script> if (document.location.href.in ...
- cookie应用——UI中查询条件的保存
var cookieOperate = { cookieNames: { companyCNName:"_companyCNName", companyENName:"_ ...
- Ubuntu 18.04.1安装IntelliJ IDEA
1.下载安装包 下载地址:https://www.jetbrains.com/idea/download/#section=linux 2.下载完成后,解压到/opt目录 .tar.gz -C /op ...
- Vim里常见的几个不可见字符
Vim里常见的几个不可见字符:^@ = 0x00 Null值^I = 0x09 水平制表^J = 0x0A 换行^M = 0x0D 回车
- MPU6050可以读取器件ID值,但读出的加速度计和陀螺仪的数据均为零
今天在调试MPU6050时发现,MPU6050可以正常读取器件ID,但读取的加速度计和陀螺仪的数据均为零. 经过排查发现,MPU6050第20脚的电容没用焊接,C6可以使用10uF的电容.
- MySQL 存储过程的变量
MySQL 存储过程的变量 变量是一个命名数据对象,变量的值可以在存储过程执行期间更改.我们通常使用存储过程中的变量来保存直接/间接结果. 这些变量是存储过程的本地变量. 注意:变量必须先声明后,才 ...
- 《R语言入门与实践》第六章:R 的环境系统
前言 这一章在对象的基础之上,讲解了对象所处的环境,进一步讲了环境对对象的作用,以及如何使用环境.结构如下: 环境的定义和操作 环境的规则 制作闭包 环境 R 环境的定义 在 R 中,每一个数据对象都 ...
- 一款好用的JS时间日期插件layDate
觉得这个插件很不错,使用起来也很方便,推荐使用 1.插件截图 2.插件配置 选择很多,配置也很简单,插件官网:https://www.layui.com/laydate/配置说得很明确,基本操作就是: ...