Пример аннотации Spring MVC hello world

Пример аннотации Hello MVC

Note
Это руководство основано на Spring 2.5.6, которая довольно устарела. Попробуйте рассмотреть новые уроки:

В этом руководстве мы возьмем предыдущийSpring MVC hello world XML-based и преобразуем его в проектannotation-based.

Используемые технологии:

  1. Весна 2.5.6

  2. JDK 1.6

  3. Maven 3

  4. Затмение 3.6

1. Структура каталогов

spring2-mvc-annotation-hello-world

2. специалист

Аннотации Spring объединены в те жеspring-webmvc.jar.

pom.xml


    4.0.0
    com.example.common
    spring2-mvc-annotation-hello-world
    war
    1.0-SNAPSHOT
    Spring 2 MVC

    
        1.6
        2.5.6
        1.2
        2.5
    

    

        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            javax.servlet
            jstl
            ${jstl.version}
        

        
        
            javax.servlet
            servlet-api
            ${servletapi.version}
            provided
        

    

    

      
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.3
            
                ${jdk.version}
                ${jdk.version}
            
        

        
            org.eclipse.jetty
            jetty-maven-plugin
            9.2.11.v20150529
            
                10
                
                    /spring2
                
            
        

        
            org.apache.maven.plugins
            maven-eclipse-plugin
            2.9
            
                true
                true
                2.0
                spring2
            
        

      

    

3. Отображение контроллера и обработчика

Теперь вы можете использовать@Controller и@RequestMapping для замены конфигурации XML.

  1. Controller - Класс контроллера больше не нужно расширять базовый контроллер, напримерAbstractController илиSimpleFormController, просто аннотируйте класс аннотацией@Controller.

  2. Handler Mapping - больше нет объявления для сопоставления обработчиков, напримерBeanNameUrlHandlerMapping,ControllerClassNameHandlerMapping илиSimpleUrlHandlerMapping, все они заменены стандартной аннотацией@RequestMapping.

HelloWorldController.java

package com.example.common.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/welcome")
public class HelloWorldController{

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView helloWorld(){

        ModelAndView model = new ModelAndView("HelloWorldPage");
        model.addObject("msg", "hello world");

        return model;
    }
}

Если@RequestMapping применяется на уровне класса (может применяться на уровне метода сmulti-actions controller), необходимо поместитьRequestMethod, чтобы указать, какой метод обрабатывать запрос сопоставления.

В этом случае, если запрашивается шаблон URI/welcome, он будет отображаться на этотHelloWorldController и обрабатывать запрос с помощью методаhelloWorld().

4. Конфигурация Spring XML

Вам все еще нужно настроить распознаватель представлений и сканирование компонентов в файле XML.

/WEB-INF/spring-mvc-config.xml



    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

    

5. Страница JSP

Простая страница JSP для демонстрации.

HelloWorldPage.jsp.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


    

Spring MVC Hello World Annotation Example

${msg}

6. web.xml

web.xml



    Spring Web MVC Application

    
        mvc-dispatcher
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            /WEB-INF/spring-mvc-config.xml
        
        1
    

    
        mvc-dispatcher
        *.htm
    

7. Demo

6.1 To run with the embedded Jetty, type :

$ mvn jetty:run

spring2-mvc-annotation-demo

6.2 To import into Eclipse IDE.

$ mvn eclipse:eclipse

Note
Если вы сравните этот пример hello world на основе аннотаций Spring MVC с предыдущимXML-based example, вы увидите, что этот подход с аннотациями проще и гибче при подключении класса контроллера и сопоставления обработчика URL , потому что вам не нужно явно объявлять класс контроллера или расширять какой-либо конкретный класс.

Скачать исходный код

Скачать -spring2-mvc-annotation.zip (15 КБ)