SpringBoot统一功能处理(统⼀⽤户登录权限验证、统⼀异常处理、统⼀数据格式封装)

统⼀⽤户登录权限验证

1、最初的用户登录效验:在每个方法里面获取session和 session 中的用户信息,如果存在用户,那么就认为登录成功了,否则就登录失败了。

2、第二版用户登录效验:提供了统一的方法,在每个需要验证的方法中调用统一的用户登录身份效验方法来判断。

3、第三版用户登录效验:使用Spring AOP来使用统一的用户登录效验。遇到了问题:

a)没有办法得到HttpSession和 Request 对象。

b)实际拦截规则很复杂,使用简单Aspect j表达式无法满足拦截的需求。

4、第四版用户登录效验:Spring拦截器来实现用户的统一登录验证。

a)实现自定义拦截器,实现 Spring 中的 HandlerInterceptor接口中的 preHandle 方法。

b)将自定义拦截器加入到框架的配置中,并且设置拦截规则。

1)给当前的类添加@Configuration 注解

2)实现WebMvcConfigurer接口

3)重写addInterceptors方法

注意:一个项目中可以同时配置多个拦截器。

拦截器步骤1:实现自定义拦截器

拦截器步骤2:将自定义拦截器添加到系统配置中,并设置拦截的规则 

 

此时插入一个小知识点,我们可以给所有地址添加上前缀: 

 

统⼀异常处理

1、给当前的类上加@ControllerAdvice/@RestControllerAdvice

2、给方法上添加@ExceptionHandler(xxx.class),添加异常返回的业务代码

上面我们是针对具体的某一个异常来做处理,异常有很多很多,我们也可以在下面继续穷举各种异常,但是我们就算穷举了所有的异常,但是针对用户自定义的异常我们还是无法进行处理。这个时候,我们可以把所有异常的父类Exception进行统一异常处理,这样就可以处理所有的异常情况了。

 

统⼀数据格式封装

1、给当前类添加@ControllerAdvice。

2、实现 ResponseBodyAdvice重写其方法。

注意:support方法返回一个 boolean值,true表示返回数据之前对数据进行重写,也就是会进入下面 beforeBodyWrite方法。如果返回false,表示对结果不进行任何处理,直接返回数据。 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

crazy_xieyi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值