English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring MVC - это Java-фреймворк для создания веб-приложений. Он следует шаблону проектирования Model-View-Controller. Он реализует все основные функции ядра фреймворка Spring, такие как обратный вызов управления, инъекция зависимостей.
Spring MVC через DispatcherServlet Предоставляет элегантное решение для использования MVC в фреймворке Spring. >>. Здесь, DispatcherServlet Это класс, который используется для приема传入них запросов и их mappings к правильным ресурсам, таким как контроллер, модель и вид.
Модель- Модель содержит данные приложения. Данные могут быть единичным объектом или коллекцией объектов. Контроллер- Контроллер содержит бизнес-логику приложения. Здесь annotацией @Controller используется для маркировки класса в качестве контроллера. Вид- Вид呈现提供的信息的特定 формат. Обычно, JSP + JSTL используются для создания страниц вида. Хотя Spring также поддерживает другие технологии вида, такие как Apache Velocity, Thymeleaf и FreeMarker. Фронт-контроллер- В Spring Web MVC класс DispatcherServlet используется в качестве переднего контроллера. Он отвечает за управление процессом приложения Spring MVC.
Как показано на рисунке, все входящие запросы拦截ируются DispatcherServlet переднего контроллера. DispatcherServlet получает записи маппинга обработчиков из XML-файла и перенаправляет запросы к контроллеру. Контроллер возвращает объект ModelAndView. DispatcherServlet проверяет запись анализатора视图 в XML-файле и вызывает指定的 компонент视图.
Давайте рассмотрим некоторые преимущества фреймворка Spring MVC: -
Разделение ролей- Spring MVC выделяет каждую роль, где могут быть реализованы модели объектов, контроллеры, объекты команд, анализаторы视图, DispatcherServlet, валидаторы и т.д. Легковесный- Он использует легкий servlet контейнер для разработки и развертывания вашего приложения. Сильная конфигурация- Он предоставляет надежную конфигурацию для фреймворка и классов приложений, включая легкую ссылку на контекст, например, из веб-контроллера к бизнес-объектам и валидаторам. Быстрое развитие- Spring MVC способствует быстрому и параллельному развитию. Повторно используемый бизнес-код- Без создания новых объектов, он позволяет нам использовать существующие бизнес-объекты. Легкость тестирования- В Spring, как правило, мы создаем классы JavaBeans, чтобы вы могли использовать методы setter для инъекции тестовых данных. Гибкое.mapping- Он предоставляет особые аннотации для легкого перенаправления страниц.
Давайте посмотрим на простой пример фреймворка Spring Web MVC. Шаги следующие:
Загрузка jar-файлов Spring в Maven или добавление зависимостей Создание класса контроллера Предоставление записи контроллера в файле web.xml Определение bean в отдельном XML-файле Отображение сообщения на странице JSP Запустите сервер и разверните проект
Чтобы запустить этот пример, вам нужно загрузить:
jar-файл Spring Core jar-файл Spring Web jar-файлы JSP + JSTL (если используется другая технология视图, загрузите соответствующий jar-файл).
Загрузите все jar-файлы Spring, включая JSP и JSTL.
Если вы используете Maven, вам не нужно добавлять jar файлы. Теперь вам нужно добавить зависимости Maven в файл pom.xml.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" <modelVersion>4.0.0</modelVersion> <groupId>com.w3codebox</groupId> <artifactId>SpringMVC</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringMVC Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.1.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> </dependencies> <build> <finalName>SpringMVC</finalName> </build> </project>
Для создания класса контроллера мы используем две annotirovki @Controller и @RequestMapping.
@Controller annotirovka markiruet klass kak Controller.
@RequestMapping annotirovka ispolzuetsya dlya rasporeda klassov s opredelennym imenem URL.
HelloController.java
package com.w3codebox; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/") public String display() { return "index"; } }
В этом xml файле мы указываем Servlet класс DispatcherServlet в качестве переднего контроллера Spring Web MVC. Все传入ые запросы html файлов будут перенаправлены на DispatcherServlet.
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>SpringMVC</display-name> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Это важный конфигурационный файл, в котором необходимо определить компонент View.
Элемент context: component-scan определяет базовый пакет для DispatcherServlet. Будут搜索 контроллерные классы.
Этот xml файл должен находится в директории WEB-INF.
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- Provide support for component scanning --> <context:component-scan base-package="com.w3codebox" /> <!-- Provide support for conversion, formatting and validation --> <mvc:annotation-driven/> </beans>
Это простая страница JSP, которая показывает сообщение, возвращенное контроллером.
index.jsp
<html> <body> <p>Welcome to Spring MVC Tutorial</p> </body> </html>
Вывод:
MVC Spring
Формы MVC
Приложение MVC Spring
Валидация MVC
Tiles MVC