zoukankan      html  css  js  c++  java
  • springmvc配置--springmvc-config.xml

    先将springmvc-config整个文件列出

    <context:component-scan base-package="com.chris.controller"/>
    
    <mvc:annotation-driven/>
    
    <mvc:default-servlet-handler/>
    
    <!-- 权限校验器,定义了处理所有的请求 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/*"/>
            <bean class = "com.chris.interceptors.AuthorizedInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
    
    <!-- 视图解析器 -->
    <mvc:view-resolvers>
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix">
                <value>WEB-INF/jsp</value>
            </property>
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
    </mvc:view-resolvers>
    
    <!-- 文件解析器 -->
    <bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize">
            <value>10485760</value>
        </property>
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
    </bean>
    
    <context:component-scan base-package="com.chris.controller"/>
    

    上面这行配置定义了容器默认加载bean所在的位置。

    <mvc:annotation-driven/>
    

    上面这行配置的意思是springmvc使用默认的配置, 默认配置主要在DispatcherServlet中的initStrategies方法中使用,

    protected void initStrategies(ApplicationContext context) {
    	initMultipartResolver(context);  // 初始化文件解析器,上传文件时使用
    	initLocaleResolver(context);     // 初始化本地化解析器,用于国际化
    	initThemeResolver(context);      // 初始化主题解析器
    	initHandlerMappings(context);    // 初始化处理器映射器,用于映射URL和其对应的处理器
    	initHandlerAdapters(context);    // 初始化处理器适配器,用于调用处理器
    	initHandlerExceptionResolvers(context);  // 初始化异常处理器
        // 初始化请求到viewname的解析器,当处理器返回的view为空时,其根据request找到对应的view
    	initRequestToViewNameTranslator(context); 
        // 初始化视图解析器,根据controller返回的model和view渲染视图
    	initViewResolvers(context);     
        // 初始化Flash管理器,用于存储,获取,管理FlashMap
    	initFlashMapManager(context);
    }
    

    这些初始化方法使用的默认配置在org.springframework.web.servlet.DispatcherServlet.properties文件中

    LocaleResolver=i18n.AcceptHeaderLocaleResolver
    
    ThemeResolver=theme.FixedThemeResolver
    
    HandlerMapping
    =handler.BeanNameUrlHandlerMapping,
     mvc.annotation.DefaultAnnotationHandlerMapping
    
    HandlerAdapter
    =mvc.HttpRequestHandlerAdapter,
     mvc.SimpleControllerHandlerAdapter,
     mvc.annotation.AnnotationMethodHandlerAdapter
    
    HandlerExceptionResolver
    =mvc.annotation.AnnotationMethodHandlerExceptionResolver,
     mvc.annotation.ResponseStatusExceptionResolver,
     mvc.support.DefaultHandlerExceptionResolver
    
    RequestToViewNameTranslator=view.DefaultRequestToViewNameTranslator
    ViewResolver=view.InternalResourceViewResolver
    FlashMapManager=support.SessionFlashMapManager
    

    上述所有的包路径中都省略了org.springframework.web.servlet。

    <mvc:default-servlet-handler/>
    

    官网给出的解释,使用默认的servlet响应静态文件。

     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>WEB-INF/jsp</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    

    配置视图解析器,规定了返回视图的前缀和后缀。当处理器返回"main"时,视图解析器会为其添加前缀和后缀:WEB-INF/jsp/main.jsp。该逻辑在InternalResourceViewResolver的父类org.springframework.web.servlet.view.UrlBasedViewResolver的buildView中

    protected AbstractUrlBasedView buildView(String viewName) throws Exception {
        AbstractUrlBasedView view = (AbstractUrlBasedView) BeanUtils.instantiateClass(getViewClass());
        view.setUrl(getPrefix() + viewName + getSuffix());
        ......
    

    下面的配置定义了文件解析器,如有文件上传的需求时,需要显示配置。springmvc中默认没有配置。

    <bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize">
            <value>10485760</value>
        </property>
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
    </bean>
    
    I am chris, and what about you?
  • 相关阅读:
    变分自编码器(Variational Autoencoder, VAE)通俗教程
    神经网络图灵机(Neural Turing Machines, NTM)
    【Java设计模式】单例模式
    SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离
    eclipse项目导入androidstudio
    LiveWriter Test
    【Android学习】XML文本的三种解析方式(通过搭建本地的Web项目提供XML文件)
    【百度地图学习-一】初始化以及TextOverlay
    【Android学习】四种布局方式
    【Android学习】数据传递三种方式
  • 原文地址:https://www.cnblogs.com/arax/p/8420728.html
Copyright © 2011-2022 走看看