SpringBoot 统一功能处理

1. 拦截器

在完善图书管理系统的时候,完成了强制登录的功能,后端程序根据Session来判断用户是否登录,但是实现方法是比较麻烦的

  • 需要修改每个接口的处理逻辑
  • 需要修改每个接口的返回结果
  • 接口定义修改,前端代码也需要跟着修改

1.1 拦截器快速入门

什么事拦截器

拦截器是Spring框架提供的核心功能之一,主要用来拦截用户的请求,在指定方法前后,根据业务需要执行预先设定的代码

拦截器的使用步骤分为两步:

1.定义拦截器

2.注册配置拦截器

定义拦截器

实现HandlerInterceptor接口,并重写其所有方法

注册配置拦截器

实现WebMvcConfigurer接口,并重写addInterceptors方法

1.2 拦截器详解

拦截器的使用细节主要介绍两个部分:

  1. 拦截器的拦截路径配置

  2. 拦截器实现原理

1.2.1 拦截路径

拦截路径指定义的这个拦截器对那些请求生效

在注册配置拦截器的时候,通过 addPathPatterns( ) 方法指定要拦截哪些请求,也可以通过 excludePathPatterns( ) 指定不拦截哪些请求

1.2.2 拦截器执行流程

1.3 DisPatcherServlet 源码分析

在 Tomcat 启动之后,有一个核心类DispatchServlet,它来控制程序的执行顺序

所有的请求都会先进到 DispatchServlet,执行doDispatch 调度方法,如果有拦截器,会先执行拦截器 preHandle() 方法的代码,如果preHandle返回true,句许访问controller中的方法,controller当中的方法执行完毕后,再回来执行 postHandle() 和 afterCompletion() ,返回给DispatchServlet,最终给浏览器响应数据

2. 统一数据返回格式

2.1 快速入门

执行t3的时候出错了,只有返回结果是String类型时才有这种错误发生

解决方法:

优点:

  1. 方便前端程序员更好的接受和解析后端数据接口返回的数据

  2. 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就可以了

  3. 有利于项目统一数据的修改和维护

  4. 有利于后端技术部门的统一规范的标准制定

3. 统一异常处理


相关推荐
摇滚侠4 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
phltxy4 小时前
C语言操作符详解
java·c语言·算法
步行cgn5 小时前
@Configuration 详解:Spring 配置类的核心注解
java·后端·spring
sunshine22 girl5 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
嘿嘿-667 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
桦说编程7 小时前
【AtomicAgent系列1】变异测试——过去做不起,现在 agent 做得起
后端·ai编程·vibecoding
考虑考虑8 小时前
nginx打印请求日志
运维·后端·nginx
策案案案8 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
IT_陈寒8 小时前
Python的切片赋值把我坑惨了,这不是bug是特性
前端·人工智能·后端
CoderLiu8 小时前
程序化工具调用(PTC)与动态工作流引擎:深入大模型工具调用的架构演进与实践
前端·人工智能·后端