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@Configurationpublic 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 доступен по адресу: