当前位置: 首页 > 知识库问答 >
问题:

rest暴露的spring数据的全局异常处理

金承嗣
2023-03-14

使用sping-data-rest公开存储库我想覆盖默认的异常处理。

阅读文档在我看来,最好的wat应该是使用@ControllerAdvice注释类

@ControllerAdvice
class GlobalControllerExceptionHandler extends ResponseEntityExceptionHandler {

    Logger log = LoggerFactory.getLogger(GlobalControllerExceptionHandler.class);

    @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> badRequest(HttpServletRequest req, Exception exception) {
        log.info("++++ GLOBAL EXCEPTION HANDLING ++++");
        return null;
    }
}

有几点我不太清楚:

  • 我应该扩展ResponseEntityExceptionHandler,其他类,什么都不扩展吗

顺便说一句,即使我尝试了不同的配置,这似乎也不起作用。有没有办法在spring data rest中自定义错误处理?

共有1个答案

南门新知
2023-03-14

它缺少RepositoryRestExceptionHandler。应该是这样的:

这样地:

@ControllerAdvice(basePackageClasses = RepositoryRestExceptionHandler.class)
public class GlobalControllerExceptionHandler {

    Logger log = LoggerFactory.getLogger(GlobalControllerExceptionHandler.class);

    @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> badRequest(HttpServletRequest req, Exception exception) {
        log.info("++++ GLOBAL EXCEPTION HANDLING ++++");
        return null;
    }
}
 类似资料:
  • 3.3. 数据的暴露 关于数据库,另外需要关心的一点是敏感数据的暴露。不管你是否保存了信用卡号,社会保险号,或其它数据,你还是希望确认数据库是安全的。 虽然数据库安全已经超出了本书所讨论的范围(也不是PHP开发者要负责的),但是你可以加密最敏感的数据,这样只要密钥不泄露,数据库的安全问题就不会造成灾难性的后果。(关于加密的详细介绍参见本书附录C) 要看图的话,请至技术文档区下载原版chm http

  • 我对spring mvc非常陌生抱歉,如果我问的是一个基本问题,我需要在我的spring 4 MVC,Jersey项目中维护全局异常处理,并向IOS移动应用程序返回JSON响应。现在,通过使用@ControllerAdvice和@ExceptionHandler,我创建了一个如下所示的类 请建议,如果上述方法是正确的,或有任何替代方法来处理所有发生在控制器,服务和DAO层的异常。

  • 统一错误处理 文档:https://eggjs.org/zh-cn/tutorials/restful.html 自定义一个异常基类 // app / exceptions / http_exceptions.js class HttpExceptions extends Error { constructor(msg='服务器异常', code=1, httpCode=400) {

  • 有没有办法在泽西进行全局异常处理?与其单个资源具有try/catch块,然后调用一些方法来清理所有要发回客户端的异常,我希望有一种方法可以将其放在实际调用资源的地方。这可能吗?如果是这样,怎么做? 相反,where会向Jersey servlet抛出某种Jersey配置的异常: 有: 其中异常将被抛出到我可以拦截并从那里调用的东西。 这实际上只是为了简化所有Jersey资源,并确保返回给客户机的异

  • Middleware: 全局异常处理 我们在岩浆的实例其实已经注意到了,compose 的连接方式,让我们有能力精确控制异常。 Koa中间件最终行为强依赖注册顺序,比如我们这里要引入的异常处理,必须在业务逻辑中间件前注册,才能捕获后续中间件中未捕获异常,回想一下我们的调度器实现的异常传递流程。 <?php class ExceptionHandler implements Middleware

  • 我想要一些关于如何实现以下目标的建议。我不提供代码,因为我的问题是理论上的,但应要求我可以。所以情况是这样的: 我有多个控制器,每个控制器都可以抛出XYException 我有一个@ControllerAdvice类,其中有一个@ExceptionHandler监视XYExceptions。当它发生时,它打印出“xy”。 在一个(且仅有一个)控制器中,当抛出XYException时,我希望执行一些