提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

7.8 KiB

SpringBoot练习—苍穹外卖为例

1.前后端联调

​ nginx反向代理,将前端发送的动态请求由nginx转发到后端服务器

1762146873365

1.1 nginx反向代理的好处:

1.提高访问速度:可以在nginx层做缓存,我们如果请求同样的接口地址,就无需再请求后端接口,直接在nginx这把缓存数据响应给前端

2.进行负载均衡

1762147027004

3.保证后端服务的安全,后端部署在公司内网,不对外开发,外部请求到达nginx服务器,在转发到内网的后端进行响应。

1.2nginx反向代理的配置方式

1762147338673

1.3nginx负载均衡的配置方式

1762147858798

负载均衡策略:

1762147974411

2.导入接口文档

apifox:1762150565908

2.1Swagger

使用Swagger你只需要按照它的规范去定义接口,及接口相关信息,就可以生成接口文档,以及在线调试页面。

Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

辨析Swagger和Yapi:

Yapi是设计阶段使用的工具,管理和维护接口。

Swagger是开发阶段使用的框架,帮助后端开发人员做后端的接口测试。

2.1.1Swagger常见注解

1762154731220

1762154779037

1762154794204

3.其他准备

3.1.返回值封装

主要为三部分:code,data,msg

code就是状态码,不同的数字代表不同的状态,前端要根据后端的code做出对应的提示信息,这一项必须要有

data,就是返回数据,一般在查询操作时会用到,把后端查询到的数据保存到data响应给前端

msg就是文字信息,返回给前端一些提示

3.2.什么时候使用DTO,什么时候使用Entity

以登录举例,登录前端提交来的数据,只是实体类对应的属性的一部分,也就是他们差别较大时,建议使用DTO来封装数据

1762156175598

3.3.idea连接数据库设置细节

1762159640391

设置完这个之后,要打开setting,把Global SQL Dialect和Project SQL Dialect设置为MySQL

1762159662456

4.功能点一:完善登录功能,对密码进行MD5加密

数据库存储的密码存储的是md5加密之后的,在EmployeeServiceImpl中,对获取到的前端输入密码进行md5加密,然后再进行和数据库比较

1762150776593

5.功能点二:新增员工功能实现

1762160506162

1762160526915

1762160546636

1762160555060

使用swagger一开始报401

原因:因为项目有jwt,没有token不能执行成功

在swagger的文档管理模块下添加全局参数设置,设置token,token的值通过接口调试登录功能的返回值里获取

1762160645659

1762160652664

5.1如何使用异常处理器捕获异常

当插入重复用户时,报以下错误:

1762224327352

接口测试提示以下信息:

1762224409435

根据报错的异常类,配置该异常类的捕获方法,当出现该异常,并且判断如果错误信息里含有Duplicate entry,则为用户已存在的报错,写出下列msg提示信息返回。

1762224124912

再次接口测试:

1762224609424

msg里已出现对应的提示信息。

5.2了解JWT流程

1762224879197

在新增的时候,想获取jwt里的用户id,

同一个请求,它的拦截,调用方法等等,都是在一个线程里,(可以通过在登录,jwt验证,新增员工代码上加入System.out.println("当前线程的id:"+Thread.currentThread().getId());进行验证)

ThreadLocal就是Thread的局部变量,ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离效果,只有在线程内才能获取到对应的值,线程外不能直接访问

1762225818743

6.功能点三:查询员工分页

6.1分页功能实现

1762235896300

1762235920529

1762235940783

1762235954789

1762236062035

6.2如何调整日期格式

方法一:在属性上加注解,对日期格式化

1762236272112

1762236376127

方法二:在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对日期类型进行格式化处理

1762237587727

7 .功能点四:启用禁用员工

1762240010155

1762240022169

1762240031238

1762240051008

1762240063086

8.功能点五:编辑员工

1762243516808

1762243528673

1762243555555

1762243565057