Java项目-苍穹外卖-Day02

完善用户登陆功能

就对密码进行md5加密处理
在这里插入图片描述

在这里插入图片描述
1.改数据库内部的密码,改成md5加密后的
2.改Service的逻辑,将传过来的进行md5加密后再比较(controller是发令牌,和返回VO对象那逻辑)
在这里插入图片描述
先更新数据
在这里插入图片描述
如果不改java代码进行登陆,肯定会失败,顺便看看我们的异常机制
我们new了一个我们建的异常
这里直接是传了一个常量消息
在这里插入图片描述
全局异常捕获类
会在日志输出对应的异常消息
并且会把这个消息封装到Result返回给前端
在这里插入图片描述
这就是我们定义的消息常量类
在这里插入图片描述
现在我们更改一下Java的逻辑代码
这样即可
在这里插入图片描述

导入接口文档

就将我们的接口文档导入接口管理平台方便查阅
实际开发接口文档设计是很复杂的,需要多次开会商讨等
前后端分离开发的流程
在这里插入图片描述
导入线上的接口管理平台
我这里用的是Apifox
在这里插入图片描述

Swagger

这个工具可以根据接口文档生成在线接口调试文档
代替Postman
但直接使用Swagger还是比较繁琐
所以我们需要用到Knife4j框架
在这里插入图片描述
在这里插入图片描述
这些配置都是一些固定代码
记住每个是干什么的进行
apiInfo就是设置生成接口文档的标题,描述,版本
然后docket扫描我们需要生成接口文档的包(一般是controller)
扫描一定要正确

在这里插入图片描述
设置静态资源映射
也就是生成接口文档的指定路径
这个是一定要设置的
在这里插入图片描述
有点牛的
就是这是直接生成到对应的网页同时也部署到服务器上
比如我们的网页端口不是8080吗
然后这个是在脉冲项目运行前会输出一遍
我们只需要用服务器访问
https://localhost:8080/doc.html
这就是Knife4j框架生成出来的
在这里插入图片描述
在这个界面进行接口测试
在这里插入图片描述
在这里插入图片描述

常用注解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对应的更改产生的效果
用椭圆标出的部分就是
在这里插入图片描述

新增员工代码开发

初步开发

controller
在这里插入图片描述
Service
在这里插入图片描述
Mapper
没有变,因为我导入了一个Mybatisplus的依赖,然后就直接用哪个现成方法了
需要注意的是,需要在对应的employee类上设置id生成策略为IdType.AUTO,进行自增,还有用父工程进行统一依赖版本管理就可以
在这里插入图片描述
在这里插入图片描述

调试

用Swagger进行调试,开发阶段用Swagger,设计阶段用接口平台
注意:第一次请求会失败,因为我们配置了拦截器进行JWT令牌的拦截,需要我们在请求头上加上对应的token即JWT令牌,怎么获取呢?看下图

在这里插入图片描述
配置全局参数

在这里插入图片描述
然后进行员工新增的调试
注意:我们用mp的话,insert是有什么参数就会insert什么参数(会直接指定id),所以我们直接把id删了就行,不像mybatis是自己定义的,只会添我们想要的参数(就算指定id但是不会添加对应值,相当于null,还是自增)
在这里插入图片描述
测试结果
在这里插入图片描述

完善

在这里插入图片描述
问题1:用全局异常处理器进行处理(因为后面的更改也可能遇到这个问题)
根据报错的信息Duplicate entry即重复的键值对来筛选错误为用户名冲突错误
然后找对应的重复字符串返回错误信息即可
在这里插入图片描述
问题2:获取对应操作用户的ID
怎么获取呢,看传过来的内容全是关于新增员工的数据,这些数据和我们操作员工没有关系
然后另寻他路,我们就用用请求头中的JWT令牌
在这里插入图片描述
在JWT令牌拦截器中获取过对应的ID
在这里插入图片描述
那么如何传递给我们的save方法呢?
涉及到一个新的技术点

ThreadLocal

先理解一下
每一次请求都是同一个线程,比如一次请求,拦截器,controller,service
都是同一个线程
同一个线程,信息当然是共享的,我们通过ThreadLocal来进行信息共享,然后恰好我们在拦截器会用到JWT令牌进行校验
在这里插入图片描述
定义一个工具类
来创建我们的ThreadLocal对象,存储一些方法
一般使用这个类都是进行一个简单的封装比如这个BaseContext
在这里插入图片描述
在我们的拦截器增添一行代码
在这里插入图片描述
在这里插入图片描述
这样就ok了
在这里声明一下为什么这个ThreadLocal是同一个
首先作为静态变量创建对象,肯定是一个对象
这个对象可以为不同的线程来生成多个存储空间
线程A作为一个空间,线程B就是另一个空间推测
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小袁拒绝摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值