2.项目疑问

Day01

1.前后端分离项目的全局异常处理怎么做

使用@ControllerAdvice+@ExceptionHandler(类.class)来实现异常处理

@ControllerAdvice: Controller增强器。将异常处理器应用到所有的控制器

@ExceptionHandler:异常处理器,只要发生异常就会捕捉。根据异常类型不同做不同的处理

@ResponseBody:将异常直接写入到HTTP响应体中。

 

2.用户自定义异常怎么实现的

自定义异常类继承RuntimeException,属性是枚举类型,里面有各种异常信息。通过有参构造器构造。

throw new CustomException(异常信息)

 

Day02

1.用户登录是怎样设计的,怎样保证密码的安全呢?

①在service里调用mapper的方法根据id获取对象user

②如果user为空,那么账号不存在。然后判断密码是否错误,账号是否锁定,是否有权限

③然后根据用户id根据jwt生成token,返回给前端调用

密码安全:

通过密码+盐(随机生成字符串),然后生成MD5(密码MD5+盐)

2.你项目用到的nacos的作用是什么

①nacos是注册中心,配置管理。让程序读取配置的

②nacos的地址是保存在项目的bootstrap.yml,优先级高。

③nacos配置更新,程序无需重启。所以需要将运行调整的参数放在nacos配置中心

3.用户登录jwt怎样生成的token

①首先创建HashMap,存储JWT的声明claim。把用户id存放在这个声明里面。

②通过Jwts工厂类创建一个JWT构建器

③JWT的唯一标识UUID,根据当前时间设置JWT的签发时间,设置主题,签发者,接收者,通过密钥进行签名,一个小时过期。

④将创建的声明claim(用户id)加入到jwt的body

JWT用户身份验证和信息传递,包括用户自定义的id,过期时间,接收者等信息

4.你用过哪些接口测试工具

①postman

②swagger

③knife4j

Day03

1.项目的网关是怎样配置的,网关的作用是什么

①导入依赖

gateway

nacos-discovery

nacos-config

②创建配置文件bootstrap.yml,包括服务的基本信息,nacos地址,路由

③在nacos里面进行yml配置

端口请求访问的是网关,基于路由规则判断,拉取服务列表,进行负载均衡发送请求。

2.全局拦截器jwt是怎样设计的

       /**实现Ordered,GlobalFilter接口

        * 全局路由:

        * 1.根据请求体的路径,如果是login那么就放行。

        * 否则

        * 1.通过请求头获取token

        * 2.如果token为空,请求拦截

        * 3.token不为空,根据claims判断是否过期,如果过期就拦截,不过期就放行。

        */

3.Nginx的作用是什么

①通过反向代理访问后台的网关资源

②通过静态服务器访问前端静态页面

Day04

1.滚屏分页的逻辑是怎样实现的?

加载上面的最  发表时间>0

加载下面的更  发表时间<2053

 

2.为什么文章表要拆分?

垂直拆分:将一个表的字段分散到多个表中,每个表保存一部分字段

优势:

①减少IO争抢,减少锁表的几率。查看文章概述和文章详情不影响

②高频数据的操作效率,对文章概述的操作高效率不会被操作文章详情低效率拖累。

拆分规则:

①不常用的放一个表

②经常查询的放一个表

③把大字段放一个表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值