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

简介: 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,表示对结果不进行任何处理,直接返回数据。


相关文章
|
3月前
|
JSON 安全 算法
|
2月前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
68 0
|
3月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
63 4
|
3月前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
58 0
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
131 62
|
2月前
|
安全 Java 数据安全/隐私保护
如何使用Spring Boot进行表单登录身份验证:从基础到实践
如何使用Spring Boot进行表单登录身份验证:从基础到实践
50 5
|
2月前
|
消息中间件 缓存 Java
手写模拟Spring Boot启动过程功能
【11月更文挑战第19天】Spring Boot自推出以来,因其简化了Spring应用的初始搭建和开发过程,迅速成为Java企业级应用开发的首选框架之一。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,帮助读者深入理解其工作机制。
50 3
|
2月前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
133 8
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
121 2
|
2月前
|
Java
springboot将list封装成csv文件
springboot将list封装成csv文件
47 4