Spring 3.2介绍@ControllerAdvice
用于处理 Spring MVC 应用程序中的异常的注释。但在此版本之前,Spring 有 @ExceptionHandler
或 HandlerExceptionResolver
在 Spring MVC 应用程序中处理异常。那为什么Spring 3.2引入了@ControllerAdvice
处理异常的注释?我坚信Spring 3.2 引入了@ControllerAdvice
注释以解决 @ExceptionHandler
的限制或 HandlerExceptionResolver
或使异常处理更强大。
谁能解释一下@ControllerAdvice
的优点?超过 @ExceptionHandler
或 HandlerExceptionResolver
处理异常?
最佳答案
@ExceptionHandler
在 Controller 级别 工作,它只对那个特定的 Controller 有效,而不是对整个应用程序全局有效。 p>
这将解决应用程序抛出的任何异常。它用于将标准 Spring 异常解析到其相应的 HTTP 状态代码。它无法控制响应的正文,这意味着它没有为响应的正文设置任何内容。它确实将状态代码映射到响应上,但 正文为空。
@ControllerAdvice
用于 Spring MVC 应用程序中的全局错误处理。它还可以完全控制响应的主体和状态代码。
关于java - @ControllerAdvice 在处理异常方面比 @ExceptionHandler 或 HandlerExceptionResolver 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35323174/
相关文章:
java - Spring Boot 是否可以使用 JAR 包装来提供 JSP?
java - SpringBoot - BeanDefinitionOverrideExceptio
spring - 配置多个数据源后无法设置JPA命名策略(Spring 1.4.1/Hibernat
java - 使用 restAssured 测试 Spring Boot Rest 应用程序
java - 如何在spring mvc中使用带有freemarker的消息?
database - Spring Batch Framework - 自动创建批处理表