员工管理,分类管理——新增员工

新增员工

需求分析

代码开发

根据新增员工接口设计对应的DTO

DTO用来封装前端提交来的数据,前端提交来的是 JSON 数据

当然也可以使用实体类

当前端提交的数据和实体类中的对应的属性差别较大时,建议使用DTO封装数据

在employeeController加入save函数

{}是占位符

方法里已经加入路径

选中EmployeeServiceImpl,ctrl+o

完善save

调用持久层

开发结束

功能测试

通过接口文档测试

前后端分离开发的时候,有可能后端已经开发好这个功能但是前端没有开发好,所以一般采用接口文档测试

首先重新启动项目(调试状态启动)

打开接口文档进行测试,发现直接返回了401

这个是由于interceptor

我们加入断点,再次测试

逐步调试,发现token为null,显然不能校验通过

抛出异常

那么如何在接口文档中添加JWT令牌

我们可以选择在接口文档中的员工登录,得到一个合法的token

接下来,选择文档管理中的全局参数设置

为啥叫token呢,这是由配置文件决定的

配置好全局参数后,打开新增员工,发现多了一个请求头

继续测试

发现,,额数据库没有连接

如何在idea中连接数据库

选择右侧的datebase选择datesource

参考文章

Unable to resolve table ‘XXX‘ 的解决方案_NorburyL的博客-CSDN博客

通过前后端联调测试

打开localhost

后端打断点

总结

代码完善

目前存在的问题是:

录入的用户名已存在,抛出异常后没有处理

新增员工时,创建人和修改人id设置为了固定值

录入的用户名已存在,抛出异常后没有处理 

我们尝试重复录入

 后端抛出异常

复制一下类名 SQLIntegrityConstraintViolationException

找到全局的异常处理器

前端进行测试

新增员工时,创建人和修改人id设置为了固定值

也就是如何获取登录用户的id呢?

员工登陆成功以后会生成JWT令牌并响应给前端

后续请求中,前端会携带JWT令牌,通过JWT令牌可以解析出当前登录员工的id

我们希望将这个id传给我们的save(新增员工)

这儿我们需要用到一个知识点,叫做ThreadLocal

ThreadLocal

这个东西并不是线程,而是线程的局部变量

ThreadLocal为每个线程提供一份单独的存储空间,具有线程隔离的效果,只有线程内才能取到对应的值,线程外不能访问

客户端每次发起的请求都会对应一个线程

在拦截器 preHandle 中已经解析出empID,将其放入共享空间

在save中取出empID 

在前端

发现,已经解析出

然后继续执行到save,如果我们希望计算某个表达式的值,可以选中右键

点击Evaluate Expression

检查数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值