首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring-boot Rest :使用ControllerAdvice,但保留默认处理程序

Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的开发过程,并提供了许多开箱即用的功能和约定,使开发人员能够更专注于业务逻辑的实现。

在Spring Boot中,使用@ControllerAdvice注解可以定义一个全局的异常处理器,用于处理应用程序中抛出的异常。通过@ControllerAdvice,我们可以集中处理所有控制器中抛出的异常,并对它们进行统一的处理和返回。

@ControllerAdvice可以定义多个方法,每个方法可以处理不同类型的异常。这些方法使用@ExceptionHandler注解来指定要处理的异常类型。当控制器中抛出指定类型的异常时,@ControllerAdvice会拦截并调用相应的处理方法。

使用@ControllerAdvice的优势包括:

  1. 统一异常处理:通过集中处理异常,可以减少重复的异常处理代码,提高代码的可维护性和可读性。
  2. 统一返回格式:可以统一定义异常返回的格式,如JSON格式,便于前端或其他系统进行处理。
  3. 异常日志记录:可以在异常处理方法中添加日志记录,方便排查问题和监控系统运行情况。

Spring Boot提供了许多相关的注解和类来支持RESTful风格的开发,如@RestController、@RequestMapping等。通过使用这些注解,我们可以方便地定义RESTful接口,并处理请求和返回数据。

关于Spring Boot Rest的应用场景,它适用于构建各种类型的Web应用程序,包括前后端分离的单页应用、移动应用的后端接口、微服务架构中的服务提供者等。它可以与各种前端框架(如Vue.js、React等)和移动开发框架(如Flutter、React Native等)进行配合使用。

在腾讯云的产品中,推荐使用腾讯云的云服务器(CVM)来部署和运行Spring Boot应用程序。云服务器提供了稳定可靠的计算资源,可以根据实际需求进行弹性扩展和配置调整。您可以通过腾讯云控制台或API来创建和管理云服务器实例。

腾讯云云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm

总结:Spring Boot Rest是使用@ControllerAdvice来定义全局异常处理器的一种方式,它可以统一处理应用程序中抛出的异常,并提供统一的返回格式。Spring Boot适用于构建各种类型的Web应用程序,腾讯云的云服务器是部署和运行Spring Boot应用程序的推荐选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringBoot系列教程web篇之自定义异常处理HandlerExceptionResolver

关于Web应用的全局异常处理,上一篇介绍了ControllerAdvice结合@ExceptionHandler的方式来实现web应用的全局异常管理; 本篇博文则带来另外一种并不常见的使用方式,通过实现自定义的...500异常会进入我们的自定义异常处理类, 而404依然走的是默认的错误页面,所以如果我们需要捕获404异常,依然需要在配置文件中添加 # 出现错误时, 直接抛出异常 spring.mvc.throw-exception-if-no-handler-found...服务,返回的是静态资源 那么js,css,图片这些文件呢,在我们的web应用中并不会定义一个REST服务 所以当接收一个http请求,找不到url关联映射时,默认场景下不认为这是一个NoHandlerFoundException...小结 本篇博文虽然也介绍了一种新的全局异常处理方式,实现效果和ControllerAdvice也差不多,但是并不推荐用这种方法, 原因如下 HandlerExceptionResolver的方式没有ControllerAdvice...://github.com/liuyueyi/spring-boot-demo 项目:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot

99750

掌握 Spring 之异常处理

前言 这次我们学习 Spring 的异常处理,作为一个 Spring 为基础框架的 Web 程序,如果不对程序中出现的异常进行适当的处理比如异常信息友好化,记录异常日志等等,直接将异常信息返回给客户端展示给用户...image-20190518134744575 这样方式使用 @ExceptionHandler 存在一个缺陷,就是只会针对当前控制器下的异常处理,若需要实现全局控制器的异常处理,还需要配合注解 @ControllerAdvice...,400 请求等,都默认由 ResponseEntityExceptionHandler处理,我们可以过继承这个类覆写它的方法,来实现特定请求异常的处理。...,但是没有统一处理异常的效果,通常配合 @ControllerAdvice 一起组合使用。...Spring Boot 的通用异常处理行为,形式多样,具体情况需要具体定制,为了保证程序的健壮性和便于快速定位请求出现的异常问题,我们必须为程序提供统一的异常处理方式,也在平时的项目里使用起来吧。

1.7K20

译:如何使用Spring优雅地处理REST异常

使用新注解 @ControllerAdvice (Spring 3.2及以上版本) 5. 处理Spring Security中的拒绝访问 6. 总结 1....概览 本文将举例说明如何使用Spring来实现REST API的异常处理。我们将同时考虑Spring 3.2和4.x推荐的解决方案,同时也会考虑以前的解决方案。...它还允许我们在REST API中实现统一的异常处理机制。 在使用自定义解析器之前,让我们回顾一下现有的异常解析器。 3.1....另一个重要的实现细节是返回一个ModelAndView ——这是响应体,它将允许应用程序设置它所需要的任何东西。 对于Spring REST服务的异常处理来说,这种方法是一种一致且易于配置的机制。...当然,我们将使用之前讨论过的全局异常处理机制来处理新的AccessDeniedException: @ControllerAdvice public class RestResponseEntityExceptionHandler

1.2K10

教你理清SpringBoot与SpringMVC的关系

自动使用ConfigurableWebBindingInitializer bean。 如果保留Spring Boot MVC特性,你只需添加其他的MVC配置(拦截器,格式化处理器,视图控制器等)。...路径匹配和内容协商 Spring MVC可以通过查看请求路径并将它匹配到应用程序中定义的映射(例如@GetMapping Controller方法上的注释),将传入的HTTP请求映射到处理程序。...还有其他一些方法可以处理不一致地发送适当的“接受”请求标头的HTTP客户端。我们可以使用查询参数来确保类似的请求"GET /projects/spring-boot?...模板引擎 正如REST web服务,你也可以使用Spring MVC提供动态HTML内容。...Spring MVC特性,比如@ExceptionHandler方法和@ControllerAdvice,ErrorController将处理所有未处理的异常。

2.1K40

教你理清SpringBoot与SpringMVC的关系

自动使用ConfigurableWebBindingInitializer bean。 如果保留Spring Boot MVC特性,你只需添加其他的MVC配置(拦截器,格式化处理器,视图控制器等)。...路径匹配和内容协商 Spring MVC可以通过查看请求路径并将它匹配到应用程序中定义的映射(例如@GetMapping Controller方法上的注释),将传入的HTTP请求映射到处理程序。...还有其他一些方法可以处理不一致地发送适当的“接受”请求标头的HTTP客户端。我们可以使用查询参数来确保类似的请求"GET /projects/spring-boot?...模板引擎 正如REST web服务,你也可以使用Spring MVC提供动态HTML内容。...Spring MVC特性,比如@ExceptionHandler方法和@ControllerAdvice,ErrorController将处理所有未处理的异常。

1.7K30

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(二)

书接上文⬆⬆⬆ HTTP 是平台 要使用 Web 层次包装您的存储库,您必须使用 Spring MVC。多亏了 Spring Boot,代码基础设施很少。...要启动应用程序,请右键单击其中并从 IDEpublic static void main中PayRollApplication选择运行,或者: Spring Initializr 使用 maven 包装器.../mvnw clean spring-boot:run 或者使用您安装的 Maven 版本输入: $ mvn clean spring-boot:run 当应用程序启动时,我们可以立即对其进行询。...在这种情况下,我们说update,replace是更好的描述。例如,如果未提供名称,则它将被取消。.........未完待续...... 2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务 #java##spring##spring认证##2022就业季# ---- 以上就是今天关于

72820

Spring Boot处理REST API错误的正确姿势

在本文中,我们就来介绍在我们使用spring boot来构建REST API时如何更好的更恰当的处理错误信息。 ?...使用Spring来构建REST API现在基本上已经变成了java开发者事实上的标准。...这样的话,我们就只需要在一个地方定义好如何处理某一个异常,并且当这个ControllerAdvice涵盖的类抛出该异常时,这个处理程序就将会被调用。...所以通过使用@ExceptionHandler和@ControllerAdvice,我们可以定义一个中心点来处理异常,并将它们包装在一个比Default错误处理机制组织错误信息更好的ApiError对象中...一个用于处理数据库调用的Spring应用程序的常见场景就是使用存储库类通过其ID来查找一条或多条记录。

3.5K130

Spring Boot REST API错误处理指南

本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...让错误响应更清晰 在本文中,我们将实现一个通过REST API来检索鸟类(代表一个对象)的应用程序,代码托管在GitHub上。这个示例包含了本文描述的所有功能,以及比较多的错误处理场景。...RestController是用于REST操作类的最基本的注解。 ExceptionHandler这个Spring注解提供了一种机制,用来处理在执行程序期间抛出的异常。...这样我们可以在一个地方定义如何处理这样的异常,当ControllerAdvice覆盖的类抛出异常时,这个处理程序就会被调用。...所以,通过使用@ExceptionHandler和@ControllerAdvice,我们可以定义一个用于处理异常的中心点,并将异常包装在ApiError对象中,这比Spring Boot默认的错误处理机制更好

3.2K20

如何完美解决 Spring Boot 出现 Whitelabel Error Page This application has no explicit mapping for error 解决方案

通过这篇文章,你将学习到如何自定义错误页面,配置错误处理器,以及使用全局异常处理机制,帮助你彻底解决Spring Boot中的Whitelabel Error Page问题。...当你的应用程序出现未捕获的异常或者404错误时,Spring Boot会显示这个默认的错误页面。 2....使用全局异常处理机制 4.1 @ControllerAdvice和@ExceptionHandler Spring Boot提供了@ControllerAdvice和@ExceptionHandler...无论是通过配置自定义错误页面、配置错误处理器,还是使用全局异常处理机制,都可以帮助我们更好地管理应用中的错误处理。...错误处理器 实现ErrorController接口自定义错误处理逻辑 全局异常处理机制 使用@ControllerAdvice和@ExceptionHandler全局处理异常 总结 本文详细介绍了

79400

Spring Boot 2.4.5、2.3.10 发布

6、抛出java.util.concurrent.RejectedExecutionException当关闭带有Cassandra的Spring Boot应用程序时 #25869 7、当使用上下文层次结构运行时...模板的根URI #25765 18、javax.persistence.schema-generation.database.action'当确定DDL自动默认值时 #25754 19、由于不推荐使用的方法...,引导程序接口未提供干净的升级路径 #25735 20、生成映像挂起如果在Spring Boot插件配置中指定了finalName启动spring-boot:build-image #25700 21、....验证(目标,错误)#25356 23、当使用配置为过滤器的执行器时,应用程序无法启动 #25262 24、javax.persistence.schema-generation.database.action...示例中使用main作为分支名称 #25865 3、更突出地记录DataJpaTest sets spring.jpa.show-sql默认为true #25843 4、更新用于删除目标的弃用警告 #25808

2.7K40

知识点-Spring Boot 统一异常处理汇总

在实际开发中,我们会遇到很多异常,在发生异常的时候Spring Boot默认提供了错误页面展示给用户。看似比较友好,其实页面很丑。...接下来分别给大家介绍下解决方案: 页面处理 首先我们来看页面错误的处理情况,当我们的程序内部报错的时候或者访问的页面找不到的时候,我们可以看到下面的错误页面: ?...接口处理 在开发rest接口时,我们往往会定义统一的返回格式,列如: { "status": true, "code": 200, "message": null, "data": [.../auth", "data": null } 页面错误和REST错误共存 当我们加好rest接口处理的方式后,访问页面不存在就会返回一段json数据,如果你的项目中既有rest接口,又有页面,这个时候就有冲突了...我们可以通过为rest接口增加统一的访问前缀,比如:/rest/xxxx来区分请求,然后用@ControllerAdvice来分别处理: import java.io.PrintWriter; import

85820

微服务架构之Spring Boot(三十四)

28.1.10模板引擎 除REST Web服务外,您还可以使用Spring MVC来提供动态HTML内容。Spring MVC支持各种模板技术,包括Thymeleaf,FreeMarker和 JSP。...28.1.11错误处理 默认情况下,Spring Boot提供 /error 映射,以合理的方式处理所有错误,并在servlet容器中注册为“全局”错误页面。...要完全替换默认行为,您可以实现 ErrorController 并注册该类型的 bean定义或添加bean类型 ErrorAttributes 以使用现有机制替换内容。...如果要为新内容类型添加处理程序,则此功能特别有用 (默认情况下,专门处理 text/html 并为其他所有内容提供后备)。...您还可以定义使用 @ControllerAdvice 注释的类,以自定义要为特定控制器和/或异常类型返回的JSON文档,如以下示例所示: @ControllerAdvice(basePackageClasses

94610

5. spring-boot REST 全局异常处理

,故此为止: 全局异常捕捉及处理 REST FULL基本常见规范 直接贴核心代码。...* RestExceptionHandler */ @ControllerAdvice(annotations = RestController.class) public class RestExceptionHandler...这里就不详细介绍了,返回的结果类似{"result":true,"message":null,"data":{"id":3,"username":"kaenry","password":"jianshu"}},spring-boot...默认使用Jackson解析拼装json,如需要忽略null,加个注解即可:@JsonInclude(JsonInclude.Include.NON_NULL),fastjson默认开启。...Bean,非特殊情况千万不要使用诸如Map作为接收参数,图一时痛快,饮恨一生啊;在这里使用@RequestBody的原因是因为现在的前端(因为有了nodejs)大多都会采用JSON直传而不是传统意义上的

1.1K40

遨游springmvc之HandlerExceptionResolver1.前言2.原理4.总结

1.前言 在我们的程序中,很多时候会碰到对异常的处理,我们也许会定义一些自己特殊业务的异常,在发生错误的时候会抛出异常,在springmvc的实际应用中,我们经常需要返回异常的信息以及错误代码,并且对异常进行一些处理然后返回再返回视图...3.实例 我们接下来要实现2种自定义异常处理器 实现rest下的异常处理返回json信息,附加validate验证 自定义页面异常 通过ControllerAdvice 先上一个rest的response...instanceof PropertyAccessException || ex instanceof ServletRequestBindingException; } } springmvc默认使用了...ResponseStatusAndBodyExceptionResolver是针对加了@ResponseBody或者控制器加了@RestController的处理程序遇到异常的异常解析器,获得异常结果并且返回...-- 如果不加默认使用classpath下的 ValidationMessages.properties --> <property name="validationMessageSource

1.1K50

遨游springmvc之HandlerExceptionResolver

1.前言 在我们的程序中,很多时候会碰到对异常的处理,我们也许会定义一些自己特殊业务的异常,在发生错误的时候会抛出异常,在springmvc的实际应用中,我们经常需要返回异常的信息以及错误代码,并且对异常进行一些处理然后返回再返回视图...3.实例 我们接下来要实现2种自定义异常处理器 实现rest下的异常处理返回json信息,附加validate验证 自定义页面异常 通过ControllerAdvice 先上一个rest的response...instanceof PropertyAccessException || ex instanceof ServletRequestBindingException; } } springmvc默认使用了...ResponseStatusAndBodyExceptionResolver是针对加了**@ResponseBody或者控制器加了@RestController**的处理程序遇到异常的异常解析器,获得异常结果并且返回...-- 如果不加默认使用classpath下的 ValidationMessages.properties --> <property name="validationMessageSource

46830
领券