如何在Spring MVC中的@controllerAdvice或@RestControllerAdvice中查找控制器名称?

2023-11-27

    @ControllerAdvice
    public class GlobalExceptionHandler {

        @ExceptionHandler(NoHandlerFoundException.class)
        public ResponseEntity<Error> handle(NoHandlerFoundException ex){
            String message = "HTTP " + ex.getHttpMethod() + " for " + ex.getRequestURL() + " is not supported.";
            Error error = new Error(HttpStatus.NOT_FOUND.value(), message);
            return new ResponseEntity<Error>(error, HttpStatus.NOT_FOUND);
        }

    }
  1. 我将 @ControllerAdvice 与 @ExceptionHandler 一起使用。
  2. 我需要获取发生异常的控制器类名称和包名称或句柄方法内的类对象

这应该有效

@ControllerAdvice
class AdviceA {

  @ExceptionHandler({SomeException.class})
  public ResponseEntity<String> handleSomeException(SomeException pe, HandlerMethod handlerMethod) {
    Class controllerClass = handlerMethod.getMethod().getDeclaringClass();
    //controllerClass.toString will give you fully qualified name
    return new ResponseEntity<>("SomeString", HttpStatus.BAD_REQUEST);
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Spring MVC中的@controllerAdvice或@RestControllerAdvice中查找控制器名称? 的相关文章

随机推荐

  • 隐藏活动指示器

    在我的主故事板上 我创建了一个活动指示器 我想隐藏我的活动指示器 直到按下按钮 我有办法做到这一点吗 当我按下按钮时 活动指示器开始动画 self indicator hidden NO self indicator startAnimat
  • 在 Postman 中使用集合变量

    所有的例子都在Learning getpostman com站点显示如何保存变量global or environment级别 以便从一个请求到另一个请求获取值 例如 pm environment set variableName Stri
  • 如何在 pandas 中创建多级数据框?

    给定两个不同的 df A a b 2016 11 21 2 1 2016 11 22 3 4 2016 11 23 5 2 2016 11 24 6 3 2016 11 25 6 3 B a b 2016 11 21 3 0 2016 11
  • R中的向后消除

    我试图使用 R 的向后消除来获得最终模型 但在运行代码时收到以下错误消息 有人可以帮我这个吗 base lt lm Eeff NDF data phuong fullmodel lt lm Eeff NDF ADF CP NEL DMI F
  • ReSharper 单元测试运行程序 - TestCase

    我喜欢使用 ReSharper 单元测试运行器 但它不支持 NUnit 2 5 中添加的 TestCase 属性 有什么办法可以解决这个问题吗 显然我可以使用另一个测试运行器 但我喜欢 ReSharper 我喜欢 ReSharper 但它还
  • 为 Eclipse RCP 中的状态栏/装饰做出贡献

    我需要在 Eclipse 应用程序的状态栏中显示状态指示器 我无法通过 ApplicationWindowAdviser 另一个团队拥有核心产品 做出贡献 但我确信我应该能够通过扩展点做出贡献 尽管进行了大量的谷歌搜索 我找不到任何描述如何
  • mapreduce.framework.name 在 mapred-site.xml 中的经典、本地之间有什么区别?

    官方对该参数的描述如下 The runtime framework for executing MapReduce jobs Can be one of local classic or yarn 我知道 yarn 值适用于 MRv2 它将
  • 如何通过 Objective-C 中的语音框架实现语音转文本?

    我想使用 iOS 语音框架在我的 Objective C 应用程序中进行语音识别 我找到了一些 Swift 示例 但在 Objective C 中找不到任何内容 是否可以从 Objective C 访问这个框架 如果是这样 怎么办 在花了足
  • 如果在“await”之后抛出,则任务抛出的异常将被吞掉

    我正在使用 NET 编写后台服务HostBuilder 我有一堂课叫MyService实现BackgroundService ExecuteAsync方法 我在那里遇到了一些奇怪的行为 在方法里面我await某个任务 以及之后抛出的任何异常
  • 使用 Json.NET 反序列化复杂对象

    我需要反序列化从 grogle 地图 api 返回的 json destination addresses Via Medaglie D Oro 10 47121 Forl FC Italia Via Torino 20123 Milano
  • 确定图像是否模糊

    我看到了很多关于这个的话题 我理解了这个理论 但我无法编写代码 我有一些照片 我想确定它们是否模糊 我找到了一个图书馆 aforge dll 我用它来对图像进行 FFT 举个例子 我正在处理两个图像 我的代码是 c public Bitma
  • 画布旋转文本工件

    I use Processing js在图像上显示一些 45 度旋转的文本 问题是 旋转后 文本变得难以阅读 因为伪影变得可见 字母间距不恒定或字母没有相同的底线 这里有一个demo 你可以看到第二个 Hello World 有 签名而不是
  • 使用 Nancy TinyIoC 配置 JsonNetSerializer 和 JsonNetBodyDeserializer

    我对南希来说是个菜鸟 我一直使用它作为生成 REST API 的框架 我熟悉 Json NET 所以我一直在玩Nancy Serialization JsonNet包裹 我的目标 自定义行为 即更改设置 JsonNetSerializer
  • NestedScrollView 中的 ViewPager

    我需要创建一个像 Google Newsstand 这样的界面 它是一种折叠标题 垂直滚动 上的 ViewPager 水平滚动 我的要求之一是使用 Google IO 2015 上提出的新设计支持库 http android develop
  • foo.bar() 和 bar(foo) 之间的区别?

    考虑 class Parent def init self last name eye color self last name last name self eye color eye color def show info self p
  • GWT:字符编码变音

    我想在标签中设置文本 labelDemnaechst setText Demn chst f llig 在应用程序的输出中 字符 显示错误 怎样才能很好地展示它们呢 GWT 假设所有源文件都以 UTF 8 编码 这就是为什么你会看到l sc
  • 在复制初始化中,对复制构造函数的调用是显式的还是隐式的?

    class AAA public explicit AAA const AAA AAA int int main AAA a 1 return 0 在上面的代码中 据我了解 尽管在大多数情况下被省略 但在语义上仍然需要调用复制构造函数 我的
  • 如何在不创建工作区的情况下从 tfs 获取特定版本的文件夹?

    我想在特定时间获取项目的源代码 变更集 所以我需要下载整个文件夹 我想在不同的时间执行此操作 并且处理不同的工作空间不是很方便 我知道关于TFS 将特定版本获取到单独的文件夹中 带工作区 和需要命令在没有工作区的情况下从 TFS 获取文件
  • 在 WPF 中绘制 3D 线条

    我正在开发 CAD 应用程序 并考虑使用 WPF 来渲染我的实体 但WPF似乎不支持绘制3D线条 有没有办法在WPF中绘制3D线条 我不喜欢为我需要绘制的每个线实体创建一个网格 因为我担心这会给我带来重大的性能问题 因为我必须在我的应用程序
  • 如何在Spring MVC中的@controllerAdvice或@RestControllerAdvice中查找控制器名称?

    ControllerAdvice public class GlobalExceptionHandler ExceptionHandler NoHandlerFoundException class public ResponseEntit