当前位置: 首页 > news >正文

SpringBoot统一功能处理

一.拦截器(实现两个接口,并重写方法)

1. 定义拦截器

⾃定义拦截器: 实现HandlerInterceptor接⼝, 并重写其所有⽅法
preHandle()⽅法:⽬标⽅法执⾏前执⾏. 返回true: 继续执⾏后续操作; 返回false: 中断后续操作.
postHandle()⽅法:⽬标⽅法执⾏后执⾏
afterCompletion()⽅法:视图渲染完毕后执⾏,最后执⾏(后端开发现在⼏乎不涉及视图, 暂不了
解)

2. 注册配置拦截器

注册配置拦截器:实现WebMvcConfigurer接⼝,并重写addInterceptors⽅法

3.拦截路径

4.执行流程

1. 添加拦截器后, 执⾏Controller的⽅法之前, 请求会先被拦截器拦截住. 执⾏ preHandle() ⽅法,
这个⽅法需要返回⼀个布尔类型的值. 如果返回true, 就表⽰放⾏本次操作, 继续访问controller中的
⽅法. 如果返回false,则不会放⾏(controller中的⽅法也不会执⾏).
2. controller当中的⽅法执⾏完毕后,再回过来执⾏ postHandle() 这个⽅法以及 afterCompletion() ⽅法,执⾏完毕之后,最终给浏览器响应数据.

二. 统⼀数据返回格式

supports⽅法: 判 断是否要执⾏beforeBodyWrite⽅法. true为执⾏, false不执⾏. 通过该⽅法可以
选择哪些类或哪些⽅法的response要进⾏处理, 其他的不进⾏处理.
beforeBodyWrite⽅法: 对response⽅法进⾏具体操作处理

注意:返回值不能为String类型,需要修改,如:

1.改为Result类型

2.设置参数返回格式

produces ="application/json"

3.判断是否为String类型

三. 统⼀异常处理

统⼀异常处理使⽤的是 @ControllerAdvice + @ExceptionHandler 来实现的,
@ControllerAdvice 表⽰控制器通知类, @ExceptionHandler 是异常处理器,两个结合表
⽰当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件

http://www.xdnf.cn/news/360739.html

相关文章:

  • 13.原生测试框架Unittest解决用例组织问题 与测试套件的使用
  • H5 移动端适配最佳实践落地指南。
  • 影楼精修-牙齿美型修复算法解析
  • 数据类型:List
  • robotframe启动ride.py
  • C++ Dll创建与调用 查看dll函数 MFC 单对话框应用程序(EXE 工程)改为 DLL 工程
  • C#学习——继承、封装、多态
  • 安科瑞DJSF1352-RN直流电能表的技术特点与应用
  • ZYNQ笔记(十九):VDMA VGA 输出分辨率可调
  • 各类音频放大器电路原理简析
  • MSF 生成不同的木马 msfvenom 框架命令
  • html object标签介绍(用于嵌入外部资源通用标签)(已不推荐使用deprecated,建议使用img、video、audio标签)
  • Nx与Monorepo
  • 【软件测试】测试用例的概念与常见测试的模型
  • Django ORM: values() 和 annotate() 方法详解
  • 2025-05-09 提示学习概念
  • Edu教育邮箱申请2025年5月
  • 【Lattice FPGA 开发】Diamond在线调试Reveal逻辑乱跳的解决
  • lambda 表达式
  • 摄像头模组高像素模组
  • AI模型蒸馏技术在微控制器上的内存占用与精度平衡实践
  • Java中的反射
  • C++23 中的 views::chunk:深入探索与应用
  • shopping mall(document)
  • 虚拟机ubantu20.04系统桥接模式下无法ping通外网,但可以ping通本机的解决方案
  • 云原生架构下的微服务通信机制演进与实践
  • 每天批次导入 100 万对账数据到 MySQL 时出现死锁
  • TCP套接字通信核心要点
  • AI内容检测如何助力企业应对内容治理挑战
  • MySQL数据库操作