程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring Boot REST服务异常处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring Boot REST服务异常处理?

开发过程中遇到Spring Boot REST服务异常处理的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring Boot REST服务异常处理的解决方法建议,希望对你解决Spring Boot REST服务异常处理有所启发或帮助;

新答案(2016-04-20)

使用Spring Boot 1.3.1.RELEASE

新的第1步-将以下属性添加到application.propertIEs很容易且不那么麻烦:

spring.mvc.throw-exception-if-no-handler-found=true
spring.@R_489_5550@es.add-mapPings=false

比修改现有的dispatcherServlet实例(如下所示)要容易得多!-JO’

如果使用完整的RESTful应用程序,则禁用静态资源的自动映射非常重要,因为如果你使用Spring Boot的默认配置来处理静态资源,则资源处理程序将处理请求(该请求最后排序并映射到/ **,这意味着它会拾取应用程序中其他任何处理程序未处理的任何请求),因此调度程序Servlet不会有机会引发异常。

解决方法

我正在尝试建立一个大型的REST服务服务器。我们正在使用Spring Boot 1.2.1,Spring 4.1.5和Java8。我们的控制器正在实现@RestController和标准的@requestMapping注释。

我的问题是Spring Boot为控制器异常设置了默认重定向到/error。从文档:

Spring Boot默认提供一个/ error映射,以一种明智的方式处理所有错误,并且在servlet容器中注册为“全局”错误页面。

使用Node.js编写REST应用程序已有多年的经验,对我而言,这是明智之举。服务端点生成的任何异常都应在响应中返回。我不明白为什么你要发送重定向到最有可能是Angular或JQuery SPA使用者的重定向程序,该使用者仅在寻找答案并且不能或不会对重定向采取任何措施。

我想做的是设置一个可以接受任何异常的全局错误处理程序-有目的地从请求映射方法抛出,或者由Spring自动生成(如果未为请求路径签名找到处理程序方法,则为404),然后返回标准格式的错误响应(400、500、503、404)到客户端,而无需任何MVC重定向。具体来说,我们将处理错误,使用UUID将其记录到NoSQL,然后将正确的http错误代码与JSON正文中的日志条目的UUID返回给客户端。

文档对如何执行此操作一直含糊不清。在我看来,你必须创建自己的ErrorController实现或以某种方式使用COntrollerAdvice,但是我所看到的所有示例仍然包括将响应转发到某种错误映射,这没有帮助。其他示例建议你必须列出要处理的每个Exception类型,而不是仅列出“ Throwable”并获取所有内容。

谁能告诉我我错过了什么,或者在没有暗示Node.js更易于处理的前提下为我指明正确的方向?

大佬总结

以上是大佬教程为你收集整理的Spring Boot REST服务异常处理全部内容,希望文章能够帮你解决Spring Boot REST服务异常处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。