spring MVC3注解配置1分钟入门
2013-04-15 18:47 阅读(173)

Spring MVC自2.5版本后添加注解配置,大大简化了应用的配置及文档维护工作,同时对模块及协同开发提供了很好的支持。

Spring MVC的上手非常简单,对于刚接触的人的来说降低了难度。下面以Spring MVC 3.0.2为例来做个入门demo。

相关jar包可到spring官网下载,地址:http://www.springsource.org/download/community

对于MVC来说只需要导入以下一个jar包:

commons-lang-2.1.jar

commons-logging-1.1.jar

以上俩个是apache的常用工具包,可到apache官网直接下载

org.springframework.asm-3.0.2.RELEASE.jar

org.springframework.beans-3.0.2.RELEASE.jar

org.springframework.context-3.0.2.RELEASE.jar

org.springframework.core-3.0.2.RELEASE.jar

org.springframework.expression-3.0.2.RELEASE.jar

org.springframework.web-3.0.2.RELEASE.jar

org.springframework.web.servlet-3.0.2.RELEASE.jar



SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。

DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。

<!-- Spring MVC配置 -->
<!-- ====================================== -->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
  


<!-- Spring配置 -->
<!-- ====================================== -->
<listener>
   <listenerclass>
     org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>


WEB-INF目录下建applicationContext.xml,如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"     
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"     
        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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
       http://www.springframework.org/schema/context <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>">

</beans>


spring-servlet.xml配置

WEB-INF目录下建spring-servlet.xml。

spring-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为spring(<servlet-name>spring</servlet-name>),再加上“-servlet”后缀而形成的spring-servlet.xml文件名,如果改为springMVC,对应的文件名则为springMVC-servlet.xml。


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"     
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"     
        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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
       http://www.springframework.org/schema/context <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>">

    
    <!-- 设置使用注解的配置的控制器controller所在的包路径-->
    <context:component-scan base-package="com.controller"></context:component-scan>
</beans>


建立源文件:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller  //spring控制器,也可使用@Component,类似Struts的Action
public class TestController {

    @RequestMapping("login.do")  // 请求url地址映射,类似Struts的action-mapping
    public String testLogin() { 
       .
       .//相应的业务处理功能,此处省略
       .
       
       return "loginSuccess.jsp";
    }    
    
}

之后需要在WebRoot目录下建个loginSuccess.jsp,用于接收testLogin()方法的返回好的,大功告成,部署系统。在浏览其中输入如下地址:http://localhost:8080/应用名/login.do即可。

spring MVC相应组件的默认配置在org.springframework.web.servlet-3.0.2.RELEASE.jar的org.springframework.web.servlet包目录下,有兴趣的可以看下。