在 Spring MVC 驱动的容器中拥有一个带注释的(@Controller)抽象类是否有意义,基本上希望将大多数可重用方法(例如异常处理程序)放在抽象类中,并用基类扩展它,所以不要'不必重复相同的样板代码。例如。
抽象控制器类:
@Controller
abstract class AbstractExternalController {
@ExceptionHandler(NoSuchRequestHandlingMethodException.class)
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public @ResponseBody ResponseModel handleNotFoundException() {
final ResponseModel response = new ErrorModel();
response.setStatus("404");
response.setMessage("Resource Not Found");
return response;
}
...
}
基本控制器类
@Controller
class ExternalControllerXXX extends AbstractExternalController {
...
}