Подтвердить что ты не робот

Имеет ли смысл иметь аннотированный класс абстрактного контроллера - Spring MVC

Имеет ли смысл иметь аннотированный (@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  {

...
}
4b9b3361

Ответ 1

Нет необходимости комментировать ваш класс AbstractExternalController с помощью аннотации @Controller, хотя, оставив его, ничего не сломает. Независимо от того, есть ли у вас аннотация @Controller, вы наверняка можете иметь аннотации метода, и они будут работать. Расширяемый вами ExternalControllerXXX будет добавлен в контекст приложения (поскольку он аннотируется аннотацией по стрептограмме), и будут отмечены аннотации @ExceptionHandler и @ResponseStatus.