В настоящее время у меня есть два способа создания контроллеров в моем приложении.
Один использует @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();
}
```