iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot统一功能处理实现的全过程
  • 230
分享到

SpringBoot统一功能处理实现的全过程

springboot统一功能springboot 统一 2023-01-10 12:01:41 230人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1.用户登录权限效验1.1 spring aop 实现用户统一登录验证1.2 Spring 拦截器1.2.1 自定义拦截器1.2.2 将自定义拦截器加入到系统配置1.3 拦截

前言

这篇文章主要介绍Spring Boot的统一功能处理模块,也是AOP的实战环节。

1.用户登录权限效验

学习Spring AOP之前,用户登录权限的验证是由每个方法中自己验证。

1.1 Spring AOP 实现用户统一登录验证

而学习了Spring AOP之后,可以通过Spring AOP的前置通知环绕通知来实现,具体实现代码如下:

但如果在以上Spring AOP的切面中实现用户权限效验的功能,有以下两个问题:

1.没办法获取到httpsession对象。

2.我们要对一部分方法进行拦截,而另一部分方法不拦截,如注册方法和登录方法是不拦截的,这样的话排除方法的规则很难定义,甚至没办法定义。

要解决上述问题,就需要使用下边的Spring拦截器:

1.2 Spring 拦截器

对于以上问题Spring中提供了具体的实现拦截器:HandlerInterceptor,拦截器的实现分为以下两个步骤:

1、创建自定义拦截器,实现 HandlerInterceptor 接口的perHandle(执行具体方法之前的预处理)方法。

2、将自定义拦截器加入 WEBmvcConfigeraddInterceptors方法中。

具体实现如下:

1.2.1 自定义拦截器

自定义拦截器是一个普通类,具体实现代码如下:

1.2.2 将自定义拦截器加入到系统配置

将上一步中的自定义拦截器加入到系统配置信息中,具体实现代码如下:

其中:

  • addPathPatterns:表示需要拦截的URL,**表示拦截任意方法(也就是所有方法)
  • excludePathPatterns:表示需要排除的URL。

说明:以上拦截规则可以拦截此项目中使用的URL,包括静态文件(图片文件、jsCSS等文件)。

1.3 拦截器实现原理

在用户调用Controller的方法之前,拦截器进行预处理,符合条件才会进一步调用Controller层的方法。

2.统一异常处理

在我们的程序出错时,前端可能根本不知道是由于什么原因,而导致程序不能正常运行,所以我们就需要通过统一异常的处理方式,使得前端获取到程序异常的具体原因,进而使得程序员更好的解决问题。

统一异常处理使用的是@ControllerAdvice+@ExceptionHandler来实现的,@ControllerAdvice表示控制器通知类,@ExceptionHandler是异常处理器,两个结合表示当出现异常的时候执行某个通知,也就是执行某个方法事件,具体实现代码如下:

方法名和返回值可以自定义,其中最重要的是@ExceptionHandler(Exception.class)注解。

以上方法表示,如果出现了异常,就可以返回给前端一个HashMap对象,我们也可以针对不同的异常返回不同的结果具体执行的异常通知符合当前异常向上依次匹配的规则

在浏览器中输入127.0.0.1:8080/user/reg,查看统一异常处理后的执行效果,可以发现,之前返回的是执行了 reg 方法,但现在如果程序再因为异常原因不能正常运行,前端就会获取到异常的原因了。

3.统一数据返回格式

3.1 统一数据返回格式的优点

  • 方便前端程序员更好的接受和解析后端数据接口返回的数据。
  • 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就可以了,因为所有接口都是这样返回的。
  • 有利于项目统一数据的维护和修改。
  • 有利于后端技术部门的统一规范的标准制定,不会出现稀奇古怪的返回内容。

3.2 统一数据返回格式的实现

统一的数据返回格式可以使用@ControllerAdvice+ResponseBodyAdvice的方式实现,具体实现代码如下:

在浏览器输入127.0.0.1:8080/user/login,在统一数据格式之前,前端页面接收到的参数为布尔类型true/false,而现在返回的就是统一格式的数据了。

4.总结

  • 统一用户登录权限的效验使用WebMvcConfigurer+HandlerInterceptor来实现
  • 统一异常处理使用@ControllerAdvice+@ExceptionHandler来实现
  • 统一返回值处理使用@ControllerAdvice+ResponseBodyAdvice来处理

到此这篇关于SpringBoot统一功能处理实现的文章就介绍到这了,更多相关SpringBoot统一功能处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot统一功能处理实现的全过程

本文链接: https://www.lsjlt.com/news/177297.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot统一功能处理实现的全过程
    目录前言1.用户登录权限效验1.1 Spring AOP 实现用户统一登录验证1.2 Spring 拦截器1.2.1 自定义拦截器1.2.2 将自定义拦截器加入到系统配置1.3 拦截...
    99+
    2023-01-10
    springboot统一功能 springboot 统一
  • SpringBoot统一处理功能实现的全过程
    目录登录校验异常处理原理返回数据结构在处理网络请求时,有一部分功能是需要抽出来统一处理的,与业务隔开。 登录校验 可以利用spring mvc的拦截器Interceptor,实现Ha...
    99+
    2023-03-20
    SpringBoot统一处理功能 SpringBoot统一处理
  • SpringBoot统一处理功能如何实现
    本文小编为大家详细介绍“SpringBoot统一处理功能如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot统一处理功能如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在处理网络请求...
    99+
    2023-07-05
  • SpringBoot统一功能处理
    前言🍭 ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring + Spring MVC + MyBatis_冷兮雪的博客-CSDN博客 本章是讲Spring Bo...
    99+
    2023-09-03
    spring boot java 后端
  • SpringBoot中的统一功能处理怎么实现
    本篇内容介绍了“SpringBoot中的统一功能处理怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、用户登录权限效验⽤户登录权限的...
    99+
    2023-07-06
  • SpringBoot中的统一功能处理如何实现
    本篇内容介绍了“SpringBoot中的统一功能处理如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、用户登录权限效验⽤户登录权限的...
    99+
    2023-07-05
  • 详解SpringBoot中的统一功能处理的实现
    目录前言一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.4 拦截器实现原理1.5 扩展:统一访问前缀...
    99+
    2023-01-28
    SpringBoot统一功能处理 SpringBoot统一功能 SpringBoot统一处理
  • elementUI+Springboot实现导出excel功能的全过程
    目录前言步骤依赖包element表格table引入包编写方法完整实例最终导出结果结语前言 在前面,我们其实已经完成了elementUI+springboot的导入功能springbo...
    99+
    2022-11-13
  • SpringBoot实现功能的统一详解
    目录1. 统一用户登录权限验证1.1 自定义拦截器1.2 将自定义拦截器加入到系统配置1.3 运行结果1.4 总结2. 统一异常处理2.1 代码实现2.2 运行结果3. 统一数据返回...
    99+
    2022-11-13
  • SpringBoot实现文件在线预览功能的全过程
    目录背景系统设计文件类型及方案流程设计系统实现识别文件后缀文件解析系统效果使用方法项目源码地址预览界面总结背景 最近公司内部oa系统升级,需要增加文件在线预览服务,最常见的文件就是...
    99+
    2022-11-12
  • SpringBoot统一功能处理的方式详解
    目录SpringMVC统一处理的三种方式1、基于SpringMVC的配置类扩展2、统一的响应数据格式封装3、统一异常处理基于SpringAOP已经实现统一功能增强,但如果希望对Con...
    99+
    2022-11-13
    SpringBoot统一功能处理 SpringBoot统一处理 SpringBoot统一处理方式
  • Python实现一键抠图功能的全过程
    本篇内容主要讲解“Python实现一键抠图功能的全过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python实现一键抠图功能的全过程”吧!简介使用百度深度学习框架paddlepaddle对人...
    99+
    2023-06-20
  • Python快速实现一键抠图功能的全过程
    简介 使用百度深度学习框架paddlepaddle对人像图片进行自动化抠图 安装 根据PaddlePaddle官网命令安装 如 pip install paddlepaddle...
    99+
    2022-11-12
  • SpringBoot如何实现统一异常处理
    这篇文章将为大家详细讲解有关SpringBoot如何实现统一异常处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.介绍在日常开发中发生了异常,往往是需要通过一个统一的异常处理处理所有异常...
    99+
    2023-05-31
    springboot 统一异常 异常处理
  • uniapp实现上拉加载更多功能的全过程
    目录一、添加全部1.在主页面中添加一列2.改云函数3.插件市场导入 加载中组件二、实现上拉加载1.云函数中可以接收参数2.获取下拉事件3.写触发这个下拉干嘛总结一、添加全部 1.在主...
    99+
    2022-11-13
    uniapp实现上拉加载更多 uniapp下拉加载更多 uniapp实现上拉加载更多
  • vue实现滑块拖拽校验功能的全过程
    效果图 定义骨架,写html和css html部分 <template> <div class="drag-wrapper" ref="dragDi...
    99+
    2022-11-12
  • SpringBoot实现文件在线预览功能的过程是怎样的
    SpringBoot实现文件在线预览功能的过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景最近公司内部oa系统升级,需要增加文件在线预览服务,最常见的文件就是of...
    99+
    2023-06-25
  • 非常全面的Java SpringBoot点赞功能实现
    目录前言解决方案青铜版白银版黄金版源码总结前言 最近公司在做一个NFT商城的项目,大致就是一个只买卖数字产品的平台,项目中有个需求是用户可以给商品点赞,还需要获取商品的点赞总数,类似...
    99+
    2022-11-13
  • Springboot实现VNC的反向代理功能
    背景 ​ 用户需要通过前端HTML页面的noVNC(noVNC是什么?)客户端连接底层VNC Server服务端,为了防止VNC Server的IP暴露,因此需要做一层代...
    99+
    2022-11-12
  • springboot 全局异常处理和统一响应对象的处理方式
    目录springboot异常处理SpringBoot 默认的异常处理机制SpringBoot 全局异常处理1. 局部异常处理2. 全局异常处理自定义异常统一响应对象定义统一的响应对象...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作