初学springMVC -servlet.xml之配置文件解读。

来源:互联网 发布:2017淘宝新店怎么做 编辑:程序博客网 时间:2024/06/16 08:55

初学spring,看了相关的篇文章把项目的-servlet.xml进行了一下了解。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc" 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-3.0.xsd  
      http://www.springframework.org/schema/context  
      http://www.springframework.org/schema/context/spring-context.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    <!--让系统识别相应的注解  -->
    <context:annotation-config/>
    <!--系统扫描那些包下的注解文件  -->
    <context:component-scan base-package="com.inesanet"/>
    <!--Spring3.1使用新的HandlerMapping 和 HandlerAdapter来支持@Contoller和@RequestMapping注解处理器 ,
        使用处理器映射RequestMappingHandlerMapping 和 处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射
        DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter。   -->
    <!--下面的配置就默认加载处理器映射和处理器适配器 。它还默认加载了其他配置-->
    <mvc:annotation-driven/>
    <!--因为配置系统拦截所有的/请求,通过此来让系统访问静态资源  -->
    <mvc:resources mapping="/assets/**" location="/assets/" />
    <mvc:resources mapping="/page/**" location="/page/" />
   
    <!-- Handler Mapping :将请求映射到处理器
        HandlerAdapter :把处理器包装为适配器,用来支持多种类型的处理器   -->
    <!-- SimpleControllerHandlerAdapter  :
          表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器, 如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。  -->
    <!--在此项目中因为我们用注解方式进行配置,所以可以省略下行配置  -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
    
    
    
    <!--HttpMessageConverter它负责对http传入和传出的内容进行格式转换   -->
    <!--比如前面学的@ResponseBody是将内容或对象作为Http响应正文返回,使用@ResponseBody将会跳过视图处理部分,直接调用合适的HttpMessageConverter,将返回值写入输出流
        n现在只要你开启了<mvc:annotation-driven  />,它会给AnnotationMethodHandlerAdapter初始化7个转换器,可以通过调用AnnotationMethodHandlerAdapter类
        的getMessageConverts()方法来获取转换器的一个集合 List<HttpMessageConverter>,默认开启的有:
         ByteArrayHttpMessageConverter
        StringHttpMessageConverter
        ResourceHttpMessageConverter
        SourceHttpMessageConverter<T>
        XmlAwareFormHttpMessageConverter
        Jaxb2RootElementHttpMessageConverter
        MappingJacksonHttpMessageConverter
        Spring是如何寻找最佳的HttpMessageConverter呢?
        最基本的方式就是通过请求的accept里面的格式来匹配,如果accept=application/json之类的,就使用json的HttpMessageConverter,如果accept=application/xml之类的,就使用xml的HttpMessageConverter-->
    <!--所以说下面的配置信息可以删除  -->
    <bean id="messageAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <!--自动转换功能  -->
        <property name="messageConverters">
            <list>
                <!-- Message converters -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
                <!-- 可以吧list集合自动转化成为json -->
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <!-- 视图解释类 -->  
    <!-- InternalResourceViewResolver :用于支持Servlet、JSP视图解析;
          viewClass :JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包;
          prefix 和 suffix :查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”   -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/page/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

0 0
原创粉丝点击