java高并发商城秒杀实现项目框架搭建

java高并发商城秒杀实现项目框架搭建

SpringBoot项目框架搭建

使用IDEA搭建出一个框架,如下图所示
创建从controller层到service层的框架结构,并且可以添加一个hello的html测试来看是否能正常运行。

集成Mybatis

需要的添加的依赖:mybatis-spring-boot-starter
需要添加的配置:mybatis
在这里插入图片描述
在这里插入图片描述
添加连接数据库的依赖,并且在数据库上创建一个简易的表,并且在idea上建立连接数据库的方法。
在这里插入图片描述
为了测试事物在数据库中输入两组数据,并且进行方法撰写,进行网页的测试

集成Redis

先下载Redis,点击以下链接进入官网Redis官网
一开始也是同样的添加Jedis和Fastjson依赖
生成redis方法
通过service来提供redis的服务
在这里插入图片描述
在这里插入图片描述
通用缓存Key封装:实现类->抽象类->接口
在这里插入图片描述

总结以下,首先我们需要将配置文件写好,然后将JedisPool配置完成,写一个service将我们的接口布置好,然后通过KeyProfix将我们的模块做一个区分。

登录模块

那接下来配置好后台以后就接着是登录,它需要两个MD5:
1、用户端:PASS=MD5(明文+固定salt)
2、服务端:PASS=MD5(用户输入+随机salt)

添加两个方法to/do login,以下为代码
在这里插入图片描述
用bootstrap来画页面,iquery来做home表达验证,layer来做弹框,js做MD5
在这里插入图片描述
然后在html上写自己的页面,这里注意引用的时候用的是@+
在这里插入图片描述

在这里插入图片描述把秒杀user的对象创建出来
在这里插入图片描述

创建方法来判断手机号是否存在、正确等等,方法如下
在这里插入图片描述

实现登录

接下来就是实现登录的环节了我们需要做到以下几点:
1、数据库设计
2、明文密码两次MD5处理
3、KSR303参数检验+全局异常处理器

在这里插入图片描述
补充一下,还有第四步分布式Session。在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session。当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Session,所以就会将用户踢到登录页面。这将大大降低用户体验度,导致用户的流失,这种情况是项目绝不应该出现的。
第一种:粘性session
第二种:服务器session复制
第三种:session共享机制
第四种:session持久化到数据库
第五种terracotta实现session复制

一,场景:用户登录时需要输入验证码登录,如何实现用户通过验证码登录
二,实现逻辑
1,进入登录页面时,调用生成验证码接口,入参:当前时间戳(前端传入)
2,后台调用生成验证码接口,生成验证码,并以入参时间戳为 key,验证码为value,保存在redis,并设置有效时间为1分钟,超时需要重新输入
3,用户输入验证码,调用后台登录接口,入参:用户名,密码,验证码,key
4,登录时校验,比较当前输入验证码与从redis中获取验证码是否一致,是则登录成功
代码(Controller,工具类,验证码实体)

Controller
在这里插入图片描述

验证码实体类
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值