Spring Boot 中 Rest 资源的 NotImplementedException

Posted

技术标签:

【中文标题】Spring Boot 中 Rest 资源的 NotImplementedException【英文标题】:NotImplementedException for Rest resources in spring boot 【发布时间】:2018-09-21 05:58:38 【问题描述】:

我正在开发一个 Rest Spring 启动应用程序,我的代码如下:

    @SpringBootApplication 公共类 Initializer 扩展 SpringBootServletInitializer

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 
        return application.sources(Initializer.class);
    
    

    具有 CRUD 方法的接口

    许多实现接口的类 控制器类 带有@ControllerAdvice 的异常处理程序类,其中带有@ExceptionHandler(NotImplementedException.class) //message 的方法

我有一些资源,比如a,b,c,d。 到目前为止,我只实现了ab,因此如果客户端尝试访问cd,我想抛出一个自定义的NotImplementedException

我想知道我应该在哪里抛出这个异常,我是否必须使用ResourceHandlers之类的东西,如果是,如何使用它以及需要什么配置?

【问题讨论】:

【参考方案1】:

1 - 控制器建议类必须extends ResponseEntityExceptionHandler

2 - 覆盖处理异常的原始方法。在你的情况下:

public ResponseEntity<Object> handleHttpRequestMethodNotSupported (HttpRequestMethodNotSupportedException ex, HttpHeaders headers, HttpStatus status, WebRequest request)

3 - 在您覆盖处理程序的方法中执行您想要执行的操作。

就是这样。

【讨论】:

以上是关于Spring Boot 中 Rest 资源的 NotImplementedException的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot:无法从另一个 Origin 访问安全资源 - CORS - Spring Security - Spring data rest

无法在spring boot data rest中直接发布到子资源

带有 Spring Boot REST 应用程序的 OAuth2 - 无法使用令牌访问资源

初入spring boot(八 )Spring Data REST

spring boot:使接口返回统一的RESTful格式数据(spring boot 2.3.1)

在 Spring Boot 的 DeferredResult REST 方法中使用 Semaphore 服务