Springboot项目中使用@RestControllerAdvice注解不生效排查思路
说明:
在后端编写业务逻辑时,可能会遇到异常抛出处理的情况,后端通常会通过throw出一个异常,然后通过@RestControllerAdvice注解标注自定义类进行统一处理,前端再将接收到的结果解析。
异常处理类
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
/**
* 基础异常
*/
@ExceptionHandler(BaseException.class)
public ResultVo baseException(BaseException e) {
log.error("base exception: {}", e.getMessage());
return ResultVo.error(e.getMessage());
}
}
排查思路
- 检查异常处理类是否被Spring管理,@SpringbootApplication默认扫描本包和子包;如果为扫描到,使用@SpringbootApplication(scanBasePackages="xxx.xxx")
- 检查项目中的切面编程,查看是否在某个切面将异常try-catch,然后没有扔出来。常见的就是切面的环绕处理,捕获了异常忘记抛出来。
本人的问题:使用切面的环绕处理,记录日志,日志分为成功、失败、异常,所有将异常捕获处理了。
解决办法:捕获异常之后,然后再将异常抛出来就可以了。
原文链接:http://www.leftso.com/blog/430.html
特此记录下,以便后续查看
Springboot项目中使用@RestControllerAdvice注解不生效排查思路的更多相关文章
- Spring-Boot项目中配置redis注解缓存
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...
- 解决springboot项目中@Value注解参数值为null的问题
1.错误场景: springboot项目中在.properties文件(.yml)文件中配置了属性值,在Bean中使用@Value注解引入该属性,Bean的构造器中使用该属性进行初始化,此时有可能会出 ...
- springboot中的controller注解没有生效
springboot中的controller注解没有生效 , 启动的Application类没有在controller的父目录或同级目录
- springboot项目中接口入参的简单校验
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- SpringBoot项目中遇到的BUG
1.启动项目的时候报错 1.Error starting ApplicationContext. To display the auto-configuration report re-run you ...
- SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL
1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...
- SpringBoot项目中,表单的验证操作
在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发 1.接收数据,以及验证 @PostMapping("/save") public Mo ...
- 在SpringBoot项目中添加logback的MDC
在SpringBoot项目中添加logback的MDC 先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web ...
- 自身使用的springboot项目中比较全的pom.xml
在学习的时候常建新的项目,mark下商用的jar <dependency> <groupId>org.mybatis</groupId> <artifactI ...
随机推荐
- Flex实现复杂布局
巧妙利用边框(或者背景颜色)来进行布局. 填上内容和图片(由设计提供切图). 去掉边框. css .business-content-1 { display: flex; /* 弹性布局 */ mar ...
- 移动端时间回显iphone出现的问题
new Date(item.startTime.replace(/-/g, '/') dateFormat('hh:mm', new Date(item.startTime.replace(/-/g, ...
- python基础(2)字符串常用方法
python字符串常用方法 find(sub[, start[, end]]) 在索引start和end之间查找字符串sub 找到,则返回最左端的索引值,未找到,则返回-1 start和end都可 ...
- Project facet Java version 1.7 is not supported.解决方法
最近遇到这个问题,在网上查到的解决方案基本都是下面几个: 1.右击项目,properties,project facets,改动java的version为1.7. 2.window,propertie ...
- Vue学习笔记-vue-element-admin 按装报错再按装
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- DatePicker日期选择器的使用
效果展示: 代码如下: <el-date-picker v-model="listQuery.times" type="daterange" range- ...
- 解决appium点击软键盘上的搜索按钮
在执行appium自动化测试的时候,需要点击软件盘上的搜索按钮. 具体操作步骤如下: 前提:需要事先安装搜狗输入法 1.唤醒软件盘,可以封装到一个类里,用到的时候随时调用. import os#调起s ...
- 【HTB系列】 Lame
出品|MS08067实验室(www.ms08067.com) 本文作者:shavchen 01 前言 这次挑战的靶机是Lame,距今900天+,历史感十足 靶机描述 Lame is a beginne ...
- Python打包之setuptools
参考链接1 参考链接2 参考链接3 一.setuptools介绍 Setuptools是Python Distutils的加强版,使开发者构建和发布Python包更加容易,特别是当包依赖于其他包时.用 ...
- Git 上传项目到 Github
Git 上传项目到 Github 该文章主要讲解Git 上传项目到 Github,Gitee同理 配置Git 下载.安装Git 下载后一路(傻瓜式安装)直接安装即可 如果第一次使用git的话,需要设置 ...