Отличие WebApplicatIoninitializer от AbstractAnnotationConfigDispatcherServletInitializer

138
16 ноября 2019, 12:30

Настроить ServletContext в Spring можно создав класс - конфигурацию и :

  • реализовать интерфейтс WebApplicatIoninitializer и переопределить метод onStartup;

  • унаследовать класс AbstractAnnotationConfigDispatcherServletInitializer.

Какой способ применять предпочтительнее и в каких случаях? В первом примере можно задать параметры контекста, установить фильтры, например на кодировку. Второй способ не выглядит таким гибким. Привидите, пожалуйста, примеры правильного использования настроек контекста.

Answer 1

Ты в вопросе частично ответил сам. Реализовав интерфейс WebApplicatIoninitializer ты можешь полностью сконфигурировать контекст, но вручную. Расширяя AbstractAnnotationConfigDispatcherServletInitializer ты получишь почти готовый контекст сервлета, тебе остаётся реализовать методы getRootConfigClasses() и getServletConfigClasses(), как это указано в документации.

Первый способ можно использовать, когда нужен полный контроль над процессом инициализации контекста сервлета, второй - когда достаточно стандартного процесса инциализации. Это применимо и к другим абстрактным реализациям WebApplicatIoninitializer.

READ ALSO
Ошибка: “Cannot resolve symbol support”

Ошибка: “Cannot resolve symbol support”

Всё было в порядкеВыгрузил проект из битбакета и при импорте:

136
Attempt to invoke virtual method 'char java.lang.String.charAt(int)' on a null object reference

Attempt to invoke virtual method 'char java.lang.String.charAt(int)' on a null object reference

Я хочу реализовать ImageView, который будет менять свой цвет

149