Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РИС шпоры для печати.docx
Скачиваний:
29
Добавлен:
31.05.2022
Размер:
1.01 Mб
Скачать

43. Spring mvc . Интерфейс WebApplicationContext. Структура, описание, роль и реализация интерфейса. Настя

В определении WebApplicationContext сказано, что это интерфейс, который предоставляет конфигурацию для веб приложения. Он является read-only (т.е. его нельзя перезаписать) во время выполнения приложения, но может быть перезагружен, если это позволяет реализация.

Чтобы было понятнее какое место занимает этот интерфейс в общей конфигурации, возьмём официальную иллюстрацию spring:

Здесь видно, что WebApplicationContext содержит в себе Controllers, HandlerMapping, ViewResolver. Всё это интерфейсы, которые отвечают за контроллеры, поиск представлений и обработку запросов.

Реализация интерфейса WebApplicationContext

По умолчанию главной реализацией этого интерфейса является класс XmlWebApplicationContext. Этот класс получает конфигурацию из XML документа, которая разбирается с помощью XmlBeanDefinitionReader.

По умолчанию, конфигурация должна находится в /WEB-INF/applicationContext.xml для родительского (рутового) контекста или в /WEB-INF/test-servlet.xml для контекста с пространством имён test-servlet (как для экземпляра DispatcherServlet с сервлетом с именем test).

Местонахождение конфигурации может быть переопределено с помощью параметра contextConfigLocation из ContextLoader и параметра сервлета init-param из FrameworkServlet.

44. Spring mvc . Интерфейс HandlerMapping, описание, роль и реализация интерфейса. Полина

Фреймворк Spring MVC обеспечивает архитектуру паттерна Model — View — Controller (Модель — Отображение (далее — Вид) — Контроллер) при помощи слабо связанных готовых компонентов. Паттерн MVC разделяет аспекты приложения (логику ввода, бизнес-логику и логику UI), обеспечивая при этом свободную связь между ними.

  • Model (Модель) инкапсулирует (объединяет) данные приложения, в целом они будут состоять из POJO («Старых добрых Java-объектов», или бинов).

  • View (Отображение, Вид) отвечает за отображение данных Модели, — как правило, генерируя HTML, которые мы видим в своём браузере.

  • Controller (Контроллер) обрабатывает запрос пользователя, создаёт соответствующую Модель и передаёт её для отображения в Вид.

По определению HandlerMapping — интерфейс, который реализуется объектами, которые определяют отображение между запросами и объектами обработчиков.

Реализации HandlerMapping могут поддерживать перехватчики (interceptors), но не содержат их. Обработчик будет всегда обернут в экземпляре HandlerExecutionChain, возможно в сопровождении некоторых экземпляров HandlerInterceptor. DispatcherServlet сначала вызывает метод preHandle каждого HandlerInterceptor в заданном порядке, и в конце, внедряет обработчик, если все методы preHandle вернули true.

Возможность параметризации такого отображения является мощной и необычной способностью в рамках MVC фреймворка. Например, можно написать пользовательское отображение на основе состояния сеанса, состояние cookie или многих других переменных. Ни один другой MVC фреймворк, кажется, не может быть столь же гибким.