目前,我有两种方法可以在应用程序中创建控制器。
一个正在使用@Controller,如下所示
@Controller
@RequestMapping(value = "/2")
public class TestController
{
@RequestMapping(value = "/test2", method = { RequestMethod.GET })
@ResponseBody
public String request2 (HttpServletRequest req)
{
throw new RuntimeException();
}
其他一些控制器实现org.springframework.web.servlet.mvc.Controller(旧版代码)
@Component
public class Test2Controller implements Controller
{
@Override
public ModelAndView handleRequest (HttpServletRequest request, HttpServletResponse response)
throws Exception
{
throw new RuntimeException();
}
}
这两种控制器都在相同的dispatcher-servlet.xml下,并且以前可以正常工作。但是,当我想为所有控制器设置全局异常处理程序时。仅@Controller有效。是否有任何额外的配置来使两种类型的控制器都可以与Spring MVC异常处理程序一起使用?
@ControllerAdvice
public class GlobalExceptionHandler
{
@ExceptionHandler({ Throwable.class })
public ResponseEntity handleException (Throwable e)
{
e.printStackTrace();
}
```