Вот минимальный способ начать проект Spring 3 MVC с Maven.
Сначала создайте файл spring-web-annotation/pom.xml и spring-web-annotation/pom.xml зависимость Spring:
|
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
|
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" 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>spring-web-annotation</groupId> <artifactId>spring-web-annotation</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.4.RELEASE</version> </dependency> </dependencies></project> |
Теперь создайте веб-инициализатор Servlet 3 и конфигурацию аннотаций Spring для деталей MVC в spring-web-annotation/src/main/java/springweb/WebApp.java
|
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
|
package springweb;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[0]; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{ WebAppConfig.class }; } @Override protected String[] getServletMappings() { return new String[]{ "/" }; } @Configuration @EnableWebMvc @ComponentScan("springweb.controller") public static class WebAppConfig { }} |
Класс WebApp расширяет встроенный в Spring код инициализатора Servlet3. Это позволяет контейнеру Servlet3, такому как Tomcat7, автоматически обнаруживать это веб-приложение без необходимости настройки конфигурации web.xml . Из-за того, что мы не используем web.xml , нам нужен этот класс, чтобы Spring мог подключиться к контейнеру сервлета для начальной загрузки их сервлета диспетчера. Кроме того, вместо типовой конфигурации XML-файла Spring bean-компонентов теперь мы можем использовать все аннотации, основанные на WebAppConfig .
Заметил, что я объединил WebAppConfig как внутренний класс, но вы можете легко переместить его как класс верхнего уровня в полномасштабном приложении. Это версия аннотации Spring для конфигурации контейнера. Вы можете легко настроить приложение, добавив новый @Bean здесь.
Примечание. Не забудьте переписать метод getServletMappings с помощью "/" , иначе ваш запрос URL не будет getServletMappings в диспетчер Spring для обработки! Шаг, который можно легко забыть, и вы можете догадаться, почему не работают контроллеры Spring.
Выше приведены минимальные настройки, необходимые для начала военного проекта. Затем вы хотите добавить хотя бы один контроллер для вывода. Создайте этот файл spring-web-annotation/src/main/java/springweb/controller/IndexController.java
|
01
02
03
04
05
06
07
08
09
10
11
12
|
package springweb.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController { @RequestMapping(value="/") public String index() { return "index"; }} |
И теперь вам потребуется представление JSP spring-web-annotation/src/main/webapp/index.jsp
|
1
|
Hello World. |
Теперь перейдите в spring-web-annotation и выполните mvn org.apache.tomcat.maven:tomcat7-maven-plugin:run . Вы должны увидеть, что приложение Spring запускается и может просматривать http://localhost:8080/spring-web-annotation адрес http://localhost:8080/spring-web-annotation .
Есть много интересных вещей, которые вы можете сделать с помощью Spring MVC. Проверьте их удивительные документы для более подробной информации.