您的位置:首页 > 新闻 > 资讯 > 网站搭建制作公司_网络系统建设与运维高级_西安seo优化顾问_百度 seo优化作用

网站搭建制作公司_网络系统建设与运维高级_西安seo优化顾问_百度 seo优化作用

2025/2/28 21:34:44 来源:https://blog.csdn.net/2302_79981885/article/details/145857908  浏览:    关键词:网站搭建制作公司_网络系统建设与运维高级_西安seo优化顾问_百度 seo优化作用
网站搭建制作公司_网络系统建设与运维高级_西安seo优化顾问_百度 seo优化作用

前言

拦截器

每个接口都要弄强制登录就很麻烦
所以我们来统一处理
在这里插入图片描述
如果包冲突的话,就要排包
直接就是在pom的右边,排除红色的就可以了

入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一个是请求前处理,就是到达controller(目标方法)前
第二个是目标方法后执行
第三个基本不用
然后就是重写方法

在这里插入图片描述
返回true就是放行,返回false就是拦截

在这里插入图片描述
然后要把这个拦截器交给项目

在这里插入图片描述
这个就是注入拦截器,然后设置拦截路径,这个就是所有的请求响应都拦截
然后就是启动,随便访问一个请求

在这里插入图片描述
这样发现真的就拦截了
这里可以不用new出来,也可以@Autowired出拦截器

在这里插入图片描述
在这里插入图片描述

现在开始修改项目了

在这里插入图片描述
如何告诉前端呢----》response

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个就说明已经拦截了

然后先登录就没事了,就不会拦截了
在这里插入图片描述
在这里插入图片描述

这样也是可以的
在这里插入图片描述

因为这是第三方的,所以不一定被spring管理的,所以还是new吧

在这里插入图片描述
在resouces目录底下添加这个,那么启动的时候就是这个了

在这里插入图片描述
在这里插入图片描述
在第三方包上打断点,要先下载资源才可以断点

适配器

适配器就是一个转换的东西
比如把110V电压转换为220V
这样就可以适用很多东西了

Sil4j也是一个适配器
现在我们来实现一下

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这个就是适配器了,现在看客户端如何去调用了

在这里插入图片描述
在这里插入图片描述

我们这个没有直接调用sprint方法,但是依然可以打印日志

有适配器的原因就是一开始没有设计好,所以用适配器来补偿

在这里插入图片描述
所以spring也是基于适配器实现的,因为原来用的是servlet

统一数据返回格式

统一数据返回格式也是在拦截器实现的,不然每个都写太麻烦了

在这里插入图片描述
然后就是继承,实现两个方法

然后加上注解@ControllerAdvice

第一个是是否要对返回结果进行重写
第二个是如何进行重写

body就是目标方法返回的结果,就是controller返回的结果
supports的两个参数就是对哪些controller进行处理的意思
直接返回true就是对所有的controller都进行处理

在这里插入图片描述
在这里插入图片描述

这样还真的返回了result结果了

在这里插入图片描述
如果原来是result类型,就不用分装了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是有些时候controller返回string类型的时候,就会报错,我的没有报错,我们可以这样处理
就不会报错了
发生的原因是类型不匹配

统一异常处理

在这里插入图片描述
在这里插入图片描述
这些都会发生异常

在这里插入图片描述

在这里插入图片描述

还有就是我们可以对异常进行分类

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样状态码就变了

@ControllerAdvice就是这两种特殊bean

改图书管理系统代码

在这里插入图片描述
看的出来我们的项目出问题了
在这里插入图片描述

主要是统一结果返回把结果改变了
所以出错了

因为前端接受的时候我们没有看做为result返回,所以有错,改一下就可以了

在这里插入图片描述
如果不行就看看是不是缓存的问题

在这里插入图片描述
注意
在这里插入图片描述
如果controller返回的是String类型
但是前端接收到的还是String类型
为什么呢
在这里插入图片描述
在这里插入图片描述
objectMapper.writeValueAsString因为这个方法返回的是String,是json字符串—》不能获取里面的数据
spring会对我们的字符串不进行处理,返回是字符串就是字符串,返回是类的话,就会变成json
所以第一可以在前端处理
在这里插入图片描述
第一个是把字符串转为对象
第二个是把对象转为字符串
现在我们来后端处理
因为这是我们后端的问题

在这里插入图片描述
我们在controller这里设置一下就可以了

总结

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com