Spring Boot统一功能处理

news2024/9/24 19:24:01

目录

一、统一用户登录权限验证

1.1 自定义拦截器

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

1.3 统一访问前缀

二、统一异常处理

三、统一数据格式返回


一、统一用户登录权限验证

1.1 自定义拦截器

拦截器是一个普通的类,需要实现HandlerInterceptor接口并重写preHandle()方法: 

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

addInterceptor():用来将刚才自定义的拦截器加入到系统配置中;

addPathPatterns():表示要拦截什么样的请求

excludePathPatterns():表示哪些请求可以被排除,可以不用被拦截。

1.3 统一访问前缀

同一个服务器上可能会部署多个项目,如果多个项目的url地址相同就会出问题,比如每个项目都有一个user/login接口,所以需要对一个项目的所有请求地址添加前缀来区分不同项目。

在上述AppConfig类中重写configurePathMatch()方法:

第一个参数表示要添加的前缀,第二个参数是lambda表达式,为true表示启动前缀。

二、统一异常处理

@ControllerAdvice 表示控制器通知类, @ExceptionHandler 表示 异常处理器,二者同时使用表示当出现异常的时候执⾏对应异常处理的方法。

三、统一数据格式返回

统一数据格式返回需要实现ResponseBodyAdvice接口,并重写supports()方法和beforeBodyWrite()方法:

返回统一数据格式的好处:

(1) 方便前端程序猿更好的接收和解析后端返回的数据;

(2) 降低前、后端程序猿的沟通成本,按照某个格式返回即可;

(3) 有利于项目统一数据维护和修改;

(4) 有利于后端技术部门的统一规范的标准指定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/400126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos安装docker,docker-cpmpose教程及疑难解决

1、安装dockeryum -y install docker出现完毕(complete)则表示安装完成2、启动docker服务systemctl start docker报错如下,让通过 systemctl status docker.service 和 journalctl -xe 命令查看详情输入systemctl status docker.service&…

在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手

目前的空余时间主要都在研究ROS2,最终目的是控制自己用舵机组装的机械手。 由于种种原因,先控制Gazebo的自定义机械手。 先看看目前的成果 左侧是rviz2中的moveit组件的机械手,右侧是gazebo中的机械手。在moveit中进行路径规划并执行后&#…

RolePred: Open-Vocabulary Argument Role Prediction for Event Extraction 论文解读

Open-Vocabulary Argument Role Prediction for Event Extraction 论文:2211.01577.pdf (53yu.com) 代码:yzjiao/RolePred: Source code for EMNLP findings paper “Open-Vocabulary Argument Role Prediction for Event Extraction” (github.com) 期…

优思学院|我们的企业面对哪些危机?六西格玛如何处理这些危机?

如果你在某公司买到的产品经常出现问题,你还会再去买他们的产品吗?如果某公司为你提供的服务经常不如你所预期,你还会再次使用他们的服务吗? 六西格玛管理是以客户为中心,透过六西格玛的工具和方法,针对问…

【黑马】Java基础从入门到起飞目录合集

视频链接: Java入门到起飞(上部):BV17F411T7AoJava入门到起飞(下部):BV1yW4y1Y7Ms 学习时间: 2023/02/01 —— 2023/03/09断断续续的学习,历时大概37天,完结撒…

php+bootstrap+jquery+mysql实现购物车项目案例

获取源码 一键三连后,评论区留下邮箱安排发送:) 介绍 使用php,bootstrap,jquery,mysql实现的简易购物车案例。 通过本案例,你将学习到以下知识点: php 操作 mysql 实现增删改查掌握 php 常用数组函数掌握 php $…

HBase 2.x核心技术

HBase 2.x主要包含以下核心功能: 1、基于Procedure v2重新设计了HBase的Assignment Manager和核心管理流程。通过Procedure v2,HBase能保证各核心步骤的原子性,从设计上解决了分布式场景下多状态不一致的问题。 2、实现了In Memory Compactio…

Chapter2.2:线性表的顺序表示

该系列属于计算机基础系列中的《数据结构基础》子系列,参考书《数据结构考研复习指导》(王道论坛 组编),完整内容请阅读原书。 2.线性表的顺序表示 2.1 顺序表的定义 线性表的顺序存储亦称为顺序表,是用一组地址连续的存储单元依次存储线性表…

脑机接口科普0017——飞米

本文禁止转载!!!! 在我们的九年制义务教育体系中,我们知道纳米是个很小的单位,一般进行单位制的转换的时候,最小就只能到达纳米级别了。 1nm 10^-9 m 这会给学生造成一种误解。认为纳米就是…

搭建兰空图床(Lsky Pro)-docker

兰空图床(Lsky Pro) 官方网站:https://www.lsky.pro/ GitHub:https://github.com/lsky-org/lsky-pro 一, 安装docker-compose 下载-授权 #下载 国内地址 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-una…

dl----算法常识100例

1.depthwise卷积&&Pointwise卷积 depthwise与pointwise卷积又被称为Depthwise Separable Convolution,与常规卷积不同的是此卷积极大地减少了参数数量,同时保持了模型地精度,depthwise操作是先进行二维平面上地操作,然后利…

nginx的学习

1. 我们今天的目标是学习 了解认识nginx的基本结构和语法学习经典案例 2. Nginx是什么 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,Nginx是由俄罗斯的人开发的,因它的稳定性、丰富的功能集…

爬虫(二)解析数据

文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后,并不是全部的数据都能用,我们只需要截取里面的一些数据来用,这也就是解析爬取到的信…

通过测试驱动开发(TDD)的方式开发Web项目

最近在看一本书《Test-Driven Development with Python》,里面非常详细的介绍了如何一步一步通过测试驱动开发(TDD)的方式开发Web项目。刚好这本书中使用了我之前所了解的一些技术,Django、selenium、unittest等。所以,读下来受益匪浅。 我相…

NFT的前景,元宇宙的发展

互联网的普及和数字技术的广泛应用,成为消费升级的新动力,在不断创造出更好的数字化生活的同时,也改变了人们的消费习惯、消费内容、消费模式,甚至是消费理念,数字经济时代的文化消费呈现出新的特征。 2020年有关机构工…

性能优化的核心思路

性能优化的本质是良好的用户体验和有限的资源之间的矛盾。核心思路【1】堆硬件 优化软件(算法、步骤)【2】开源(堆机器) 节流(提高资源利用率,少占资源)【3】输入、计算、输出【4】权衡核心思想…

谷粒学院开发(二):教师管理模块

前后端分离开发 前端 html, css, js, jq 主要作用:数据显示 ajax后端 controller service mapper 主要作用:返回数据或操作数据 接口 讲师管理模块(后端) 准备工作 创建数据库,创建讲师数据库表 CREATE TABLE edu…

git 当有人邀请你加入项目(gitee)

第一步,找到仓库地址 https://gitee.com/xxxxxxxxxxxxxxxx/abcd.git https://gitee.com/xxxxxxxxxxxxxxxx/abcd.git 2,打开git bush git clone https://gitee.com/xxxxxxxxxxxxxxxx/abcd.git 这条命令新建一个名为abcd(也就是项目目录结尾…

python操作频谱仪(是德科技N9030B)

由于工作需要,需要针对产品进行一些自动化的测试,其中就包含了验证开机启动或者长时间运行时候对射频、晶振频率等等一些列进行获取频率或者功率的偏差。这里就需要用到了频谱仪,可以使用脚本连接到频谱仪进行循环对数据的采集等等。直接开始…

Python中的property介绍

Python中的property介绍 Python中进行OOP(面向对象程序设计)时,获取、设置和删除对象属性( attribute)的时候,常常需要限制对象属性的设置和获取,比如设置为只读、设置取值范围限制等&#xff…