Spring MVC - принцип

1.1 Основные возможности Spring MVC

1.1.1 Основные понятия

  • Spring MVC - это облегченная структура Web MVC системы Spring.
  • Основной контроллер Spring MVC используется для обработки запросов и генерации ответов.
  • Spring MVC работает на основе контейнера Spring IOC, и все объекты управляются IOC.

Взаимодействие с другими людьми

1.1.2 Положение в трехуровневой архитектуре

1.1.3 Преимущества Springmvc

Серийный номер преимущество описание
1 Четкое разделение ролей Фронтальный контроллер (DispatcherServlet), преобразователь процессора (HandlerMapping), адаптер процессора (HandlerAdapter), преобразователь представлений (ViewResolver), внутренний контроллер (Controller)
2 Полная интеграция с Spring framework Это недоступно в других веб-фреймворках.
3 Хорошая масштабируемость Легко расширяется, хотя и не требуется
4 Удобное модульное тестирование Объект Mock, предоставляемый Spring, можно использовать для очень простого выполнения модульного тестирования веб-уровня.
5. Мощный RESTful, проверка данных, форматирование, локализация, темы и т. Д.
6 библиотека тегов jsp Мощная библиотека тегов JSP, упрощающая написание JSP

1.1.4 Сравнение со Struts2

Общие моменты :

  • Все они представляют собой структуры уровня представления и написаны на основе модели MVC.
  • Их нижний слой неотделим от исходного ServletAPI.
  • Их механизм обработки запросов - это базовый контроллер.

Разница :

  • Вход Spring MVC - это Servlet, а Struts2 - это фильтр.
  • Spring MVC основан на дизайне методов, а Struts2 основан на классе, Struts2 будет создавать класс действия каждый раз, когда он выполняется. Таким образом, Spring MVC будет немного быстрее, чем Struts2.
  • Spring MVC более лаконичен в использовании, а также поддерживает JSR303, что упрощает обработку запросов ajax.
  • Выражение OGNL в Struts2 повышает эффективность разработки страницы, чем Spring MVC, но эффективность выполнения не лучше, чем у JSTL, особенно тега формы struts2, который не так эффективен, как html.

1.2 Принцип исполнения

1.2.1 Передний контроллер

Веб-фреймворк Spring разработан на основе DispatcherServlet. Роль DispatcherServlet - распределять запросы по разным процессорам.

Начиная с Spring 2.5, пользователи, использующие Java 5 или выше, могут использовать метод объявления контроллера на основе аннотаций.
Фреймворк Spring MVC, как и многие другие фреймворки MVC, управляется запросами, отправляет запросы и предоставляет другие функции для центрального сервлета. DispatcherServlet - это фактический сервлет (он наследуется от базового класса HttpServlet) .

1.2.2 Принципы SpringMVC

Когда запрос инициируется, фронт-контроллер перехватывает запрос, генерирует прокси-запрос в соответствии с параметрами запроса, находит фактический контроллер, соответствующий запросу, контроллер обрабатывает запрос, создает модель данных, обращается к базе данных и отвечает на модель центральному контроллеру для управления Процессор использует модель и представление для визуализации результата представления, возвращает результат центральному контроллеру, а затем возвращает результат запрашивающей стороне.

1.2.3 Принцип выполнения SpringMVC

Сплошная линия указывает на технологию, предоставляемую фреймворком SpringMVC, и не требует реализации разработчиком, а пунктирная линия указывает, что она должна быть реализована разработчиком.

Взаимодействие с другими людьми

1.2.4 Процесс выполнения

1. DispatcherServlet представляет собой фронт-контроллер и является центром управления всем SpringMVC. Пользователь отправляет запрос, а DispatcherServlet получает запрос и перехватывает его.
Предположим, запрошенный URL-адрес: http: // localhost: 8080 / SpringMVC / success

如上url拆分成三部分:http://localhost:8080服务器域名。
SpringMVC部署在服务器上的web站点。success表示控制器.
通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。

2. HandlerMapping - отображение процессора.

DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。

3. HandlerExecutionChain представляет собой конкретный обработчик (процессор).

其主要作用是根据url查找控制器,如上url被查找控制器为:success。

4. HandlerExecutionChain передает проанализированную информацию в DispatcherServlet, такую ​​как анализ сопоставления контроллера и так далее.

5. HandlerAdapter представляет адаптер процессора, который выполняет Handler в соответствии с определенными правилами.

6. Обработчик позволяет выполнять конкретный Контроллер.

7. Контроллер возвращает конкретную информацию о выполнении в HandlerAdapter, например ModelAndView.

8. HandlerAdapter передает логическое имя или модель представления в DispatcherServlet.

9. DispatcherServlet вызывает преобразователь представлений (ViewResolver) для разрешения имени логического представления, переданного HandlerAdapter.

10. Конструктор представлений передает разрешенное имя логического представления в DispatcherServlet.

11. DispatcherServlet вызывает конкретное представление в соответствии с результатом представления, проанализированным анализатором представления.

12. Окончательный вид представлен пользователю.

рекомендация

отblog.csdn.net/hxy1625309592/article/details/115190332