使用@ControllerAdvice同时配置过滤多个包

 更新时间:2021年06月15日 14:59:38   作者:abckingaa  
这篇文章主要介绍了使用@ControllerAdvice同时配置过滤多个包的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@ControllerAdvice同时配置过滤多个包

看代码吧~

//@ControllerAdvice("com.automvc")   //配置过滤一个的时候
@ControllerAdvice(basePackages={"com.automvc", "com.test"})    //同时配置过滤多个包

springboot 多个@RestControllerAdvice时的拦截顺序

我们的项目中经常会使用到别人的模块,例如我的项目demo,要依赖别人的A模块,以及基础的核心core模块,此时core模块有一个使用了@RestControllerAdvice的类,负责拦截所有的controller异常。

但是呢,他的异常处理不符合我们demo项目的要求,这就导致我们demo项目要重写自己的controller异常拦截。

此时我们可以用的解决异常的方法有三种:

1、使用aop进行切面拦截异常

2、controller每个方法都用try-catch捕获异常

3、增加一个@RestControllerAdvice标注的类,负责处理我们项目的controller异常。

我选用第三种方法,但是当我写了个PartControllerAdvice类,指定basePackages为我自己的项目包,依旧还是被core模块的全局异常处理类拦截了。

查资料和找博客发现如果有多个加了@RestControllerAdvice的类,他们会依次加载,遇到异常时,按照类加载顺序进行判断,如果前面的类有能处理这个异常的方法,就给前面的类处理。

我的项目中有两个标注了@RestControllerAdvice的类,core模块的类被先加载,且core模块的异常处理类有个方法专门处理Exception类型的异常,所以我的局部异常处理类始终不执行。

解决方法:

@Order(Ordered.HIGHEST_PRECEDENCE) 使用@Order注解,提高自己的局部异常处理类的加载顺序就行了

代码:

模拟效果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • logback的FileAppender文件追加模式和冲突检测解读

    logback的FileAppender文件追加模式和冲突检测解读

    这篇文章主要为大家介绍了logback的FileAppender文件追加模式和冲突检测解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 浅谈Spring中的循环依赖问题与解决方案

    浅谈Spring中的循环依赖问题与解决方案

    这篇文章主要介绍了浅谈Spring中的循环依赖问题与解决方案,循环依赖就是两个或则两个以上的bean互相持有对方,最终形成闭环,比如A依赖于B,B依赖于C,C又依赖于A,需要的朋友可以参考下
    2023-12-12
  • Spring Boot静态资源路径的配置与修改详解

    Spring Boot静态资源路径的配置与修改详解

    最近在做SpringBoot项目的时候遇到了“白页”问题,通过查资料对SpringBoot访问静态资源做了总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • java -jar指定端口或配置文件启动jar问题

    java -jar指定端口或配置文件启动jar问题

    这篇文章主要介绍了java -jar指定端口或配置文件启动jar问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • springboot整合Shiro

    springboot整合Shiro

    这篇文章主要介绍了SpringBoot整合Shiro一些方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • intellij idea自动生成类注释和方法注释配置方法

    intellij idea自动生成类注释和方法注释配置方法

    这篇文章主要介绍了intellij idea自动生成类注释和方法注释设置方法,需要的朋友可以参考下
    2023-01-01
  • Springboot 整合 RabbitMQ 消息队列 详情

    Springboot 整合 RabbitMQ 消息队列 详情

    这篇文章主要介绍了Springboot整合RabbitMQ 消息队列详情,文章为荣啊主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • 浅谈JAVA设计模式之代理模式

    浅谈JAVA设计模式之代理模式

    这篇文章主要介绍了JAVA设计模式之代理模式的的相关资料,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • response文件流输出文件名中文不显示的解决

    response文件流输出文件名中文不显示的解决

    这篇文章主要介绍了response文件流输出文件名中文不显示的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • JAVA SpringBoot统一日志处理原理详解

    JAVA SpringBoot统一日志处理原理详解

    这篇文章主要介绍了SpringBoot的统一日志处理原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09

最新评论