在我的项目中,我被迫创建一个带有基本控制器的类来处理错误。我想问一下除了附加到所有类之外,是否有一种方法可以使它成为真正的“主”控制器extends BaseController
。我的意思是,配置文件中的一些棘手的更改或可能有用的注释。附加到所有类定义的扩展 BaseController是解决该问题的唯一方法吗?
问问题
2780 次
2 回答
1
@ControllerAdvice
(自 3.2.0 起)将满足您的需求。
对于应用程序中所有控制器所需的 Spring @MVC 功能,请考虑使用@ControllerAdvice
注解。这是自 Spring 3.2.0 以来引入的,对于全局处理来自 @MVC 处理程序的异常非常有用。来自 javadoc:
它通常用于定义适用于所有方法的
@ExceptionHandler
、@InitBinder
和 方法。@ModelAttribute
@RequestMapping
顺便说一句,我认为使用一种不是BaseController
一个好的设计。但这对于较低版本的 Spring 的类似功能可能是一个很好的解决方法。
于 2013-02-18T02:15:56.797 回答
0
实现自己的HandlerExceptionResolver有问题吗?
我认为归结为:
- @ExceptionHandler = 在给定的控制器内
- HandlerExceptionResolver = 整个应用程序
于 2012-12-04T22:26:02.217 回答