Имеет ли смысл иметь аннотированный (@Controller) Абстрактный класс в Spring контейнере, управляемом MVC, в основном хотел бы разместить большинство методов многократного использования, таких как обработчики исключений в классе Abstract и расширьте это с базовым классом, так что не нужно повторять один и тот же шаблонный код. Например.
Абстрактный класс контроллера:
    @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  {
...
}