Spring3.2 MVC框架搭建

最近struts2曝的漏洞比较严重,特别写上Spring MVC框架搭建及使用教程

最新的jar包请到Spring官方网站下载:http://www.springsource.org/spring-community-download

1、每个jar包得用处如下:

org.springframework.aop--------------------Spring的面向切面编程,提供AOP(面向切面编程)实现

org.springframework.asm--------------------Spring独立的asm程序,相遇Spring2.5.6的时候需要asmJar 包.3.0开始提供他自己独立的asmJar

org.springframework.aspects----------------Spring提供对AspectJ框架的整合

org.springframework.beans------------------SpringIoC(依赖注入)的基础实现

org.springframework.context.support--------Spring-context的扩展支持,用于MVC方面

org.springframework.context----------------Spring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等

org.springframework.core-------------------Spring3.0的核心工具包

org.springframework.expression-------------Spring表达式语言

org.springframework.jdbc-------------------对JDBC的简单封装

org.springframework.orm--------------------整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现

org.springframework.test--------------------对Junit等测试框架的简单封装

org.springframework.web--------------------SpringWeb下的工具包

web-context.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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- 启动扫描jlc下所有的controller --> 
    <context:component-scan base-package="com.jlc"/>
    <mvc:annotation-driven/>
    <mvc:default-servlet-handler/>

    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>

    <!-- 启动Spring MVC 的注解功能,完成请求和注解POJO的映射 -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />  <!-- json转换器 -->
            </list>
        </property>
    </bean>

     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
        <property name="exceptionMappings">  
            <props>  
                <prop key="org.springframework.web.servlet.PageNotFound">error/pageNotFound</prop>  
                <prop key="org.springframework.dao.DataAccessException">error/dataAccessFailure</prop>  
                <prop key="org.springframework.transaction.TransactionException">error/dataAccessFailure</prop>  
            </props>  
        </property>  
    </bean>  

     <!-- jsp页面解析器,当Controller返回XXX字符串时,先通过拦截器,然后该类就会在/WEB-INF/views/目录下,查找XXX.jsp文件-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:*-context.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:web-context.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

spring-context为空,后面会加入数据库

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd">


</beans>

部分注解说明

@Autowired  自动注入[根据类型注入 可以对成员变量、方法以及构造函数进行注释
@Qualifier  标注对象是成员变量、方法入参、构造函数入参。
@Resource   自动注入[根据名称注入],可写参数name=""  
@Controller 表示控制器  
@Service    表示业务处理层[一般在serviceImpl]  
@Repository 表示持久层[一般在daoImpl]  
@Component  当你的类不清楚是哪一层的时候使用该注解  
@ResponseBody  异步返回数据类型为json  
@RequestMapping  路径,请求类型等设置  
@InitBinder   数据绑定

猜你喜欢

转载自jlancun.iteye.com/blog/1914777