Статьи

Spring MVC Tutorial

1. Обзор и Maven

Это простое руководство по Spring MVC, показывающее, как настроить проект Spring MVC, как с помощью конфигурации на основе Java, так и с настройкой XML.

Артефакты Maven для проекта Spring MVC подробно описаны в статье о зависимостях Spring MVC .

2. Web.xml

Это простая конфигурация web.xml для проекта Spring MVC:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?xml version="1.0" encoding="UTF-8"?>
   xsi:schemaLocation="
   id="WebApp_ID" version="3.0">
 
   <display-name>Spring MVC Java Config App</display-name>
 
   <servlet>
      <servlet-name>mvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>mvc</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>
 
   <context-param>
      <param-name>contextClass</param-name>
      <param-value>
         org.springframework.web.context.support.AnnotationConfigWebApplicationContext
      </param-value>
   </context-param>
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>org.baeldung.spring.web.config</param-value>
   </context-param>
   <listener>
      <listener-class>
         org.springframework.web.context.ContextLoaderListener
      </listener-class>
   </listener>
 
</web-app>

Мы используем конфигурацию на основе Java , поэтому мы используем AnnotationConfigWebApplicationContext в качестве основного класса контекста — он принимает аннотированные классы @Configuration в качестве входных данных. Таким образом, нам нужно только указать пакет, в котором расположены эти классы конфигурации, через contextConfigLocation .

Чтобы сохранить этот механизм гибким, здесь также можно настроить несколько пакетов, просто разделив их пробелами:

1
2
3
4
<context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>org.baeldung.spring.web.config org.baeldung.spring.persistence.config</param-value>
   </context-param>

Это позволяет более сложным проектам с несколькими модулями управлять своими собственными классами Spring Configuration и вносить их в общий контекст Spring во время выполнения.

Наконец, сервлет сопоставляется с / — это означает, что он становится сервлетом приложения по умолчанию, и он подберет каждый шаблон, который не имеет другого точного соответствия, определенного другим сервлетом.

3. Просмотр конфигурации

Java-конфигурация Spring MVC проста — она ​​использует поддержку конфигурации MVC, представленную в Spring 3.1:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
@EnableWebMvc
@Configuration
public class ClientWebConfig extends WebMvcConfigurerAdapter {
 
   @Override
   public void addViewControllers(ViewControllerRegistry registry) {
      super.addViewControllers(registry);
 
      registry.addViewController("/sample.html");
   }
 
   @Bean
   public ViewResolver viewResolver() {
      InternalResourceViewResolver bean = new InternalResourceViewResolver();
 
      bean.setViewClass(JstlView.class);
      bean.setPrefix("/WEB-INF/view/");
      bean.setSuffix(".jsp");
 
      return bean;
   }
}

Здесь очень важно то, что мы можем зарегистрировать контроллеры представлений, которые создают прямое сопоставление между URL-адресом и именем представления — теперь нет необходимости в каком-либо контроллере между этими двумя, поскольку мы используем конфигурацию Java.

4. Взгляды JSP

Мы определили базовый контроллер представления — sample.html — соответствующий ресурс jsp:

1
2
3
4
5
6
7
<html>
   <head></head>
 
   <body>
      <h1>This is the body of the sample view</h1
   </body>
</html>

Файлы представлений на основе JSP находятся в папке / WEB-INF проекта, поэтому они доступны только для инфраструктуры Spring, а не через прямой URL-доступ.

5. Заключение

В этом примере мы настроили простой и функциональный проект Spring MVC, используя конфигурацию Java. Реализация этого простого учебника Spring MVC может быть найдена в проекте github — это проект на основе Eclipse, поэтому его легко импортировать и запускать как есть.

Когда проект выполняется локально, файл sample.html доступен по адресу:

Ссылка: Spring MVC Tutorial от нашего партнера JCG Евгения Параскива в блоге baeldung .