Статьи

Начало работы с веб-приложением Spring MVC на основе аннотаций

Вот минимальный способ начать проект 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"?>
    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;
 
@Controller
public 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. Проверьте их удивительные документы для более подробной информации.