Spring MVC 3  - Parte 2 - Configurações
Autor: Julio César Cabral | Publicado: 2012-11-14T16:44:00-02:00

Usando Maven, é preciso informar as dependências abaixo para desenvolver uma aplicação com Spring MVC:


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

É necessário configurar o servlet do Spring MVC no arquivo web.xml:



    
        ...
   
        
            aplicacao
            
                org.springframework.web.servlet.DispatcherServlet
            
            1
        
        
            aplicacao
            /
        
    

É necessário criar um arquivo xml do Spring para carregar as configurações para o Spring MVC. Por default, esse arquivo terá o nome do servlet, informando no arquivo web.xml, acrescido de -servlet.xml. Usando como exemplo a configuração do web.xml acima, o nome do arquivo seria aplicacao-servlet.xml. É possível especificar um outro nome utilizando o parâmetro contextConfigLocation no arquivo web.xml.

Para carregar outros arquivos de configuração do Spring, ao lado do arquivo do Spring MVC, neste caso aplicacao-servlet.xml, é necessário definir o listener ContextLoaderListener no web.xml. Por default, ele carrega o arquivo /WEB-INF/applicationContext.xml, mas pode-se especificar outros arquivos, usando o parâmetro contextConfigLocation. Os arquivos de configuração devem ser separados por vírgula ou espaços.



    
        ...

        
            contextConfigLocation
            /WEB-INF/aplicacao-service.xml
        
        
            
                org.springframework.web.context.ContextLoaderListener
            
        
    

É necessário configurar a aplicação para escanear a presença de anotações nas classes de controle do Spring MVC, como @Controller e @RequestMapping. Para isso, é preciso habilitar o Spring para detectar as anotações através do elemento  informando o pacote base da aplicação, que será a raiz para procurar pelas anotações. Em adição, a anotação @RequestMapping mapeia requisições URLs para classes controladoras e respectivos métodos. Por isso, é preciso registrar também as classes DefaultAnnotationHandlerMapping e AnnotationMethodHandlerAdapter. A primeira, para processar requisições em nível de classe e a segunda, em nível de método. A seguir, encontra-se um exemplo dessas configurações, que podem ser incluídas no arquivo de configuração do Spring MVC.



&lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/
                                           spring-context-3.0.xsd"&gt;

       &lt;context:component-scan
            base-package="com.apress.springrecipes.court.web" /&gt;
        
       &lt;bean class="org.springframework.web.servlet.mvc.annotation.
                               DefaultAnnotationHandlerMapping" /&gt;

       &lt;bean class="org.springframework.web.servlet.mvc.annotation.
                                AnnotationMethodHandlerAdapter" /&gt;
&lt;/beans&gt;