zoukankan      html  css  js  c++  java
  • spring 配置文件被加载两次

    如下web.xml示例:

    1.用spring的配置加载contextConfigLocation

    2.配置spring-mvc的contextConfigLocation

    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/spring-*.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
     <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
      </context-param>

    看了配置,spring下面的文件在springmvc中加载了一次,在context中又加载了一次。

    从启动日志和启动时长可以看到。 补充:重复加载还会导致配置的task,schadule任务重复执行!

    所以,合理的做法是,把spring-mvc的定义单独摘出来定义在web容器启动的时候加载,名称也换成servlet-mvc.xml避免被spring重复加载, 而在spring的core xml定义中,不要出现mvc的东东

    <servlet>  
        <servlet-name>spring-mvc</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <!--查找controller位置的xml文件配置 -->  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <!--查找这里可以配置多个,用逗号分割或者用通配符*也就是第二行 -->  
            <param-value>/WEB-INF/classes/servlet-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <async-supported>true</async-supported>  
    </servlet>  

    springmvc的xml单独配置出来,spring本身管spring的,springmvc管springmvc的,这样就ok了

    总结:该分开配置的不要合在一起。注意代码使用

  • 相关阅读:
    【Android】Android消息处理机制
    【Android】Sensor框架HAL层解读
    【Android】Sensor框架Framework层解读
    【流媒体】初识流媒体与流媒体技术
    【Git】Git与GitHub 入门
    【Delphi】基于状态机的串口通信
    【Delphi】SPComm注意事项
    【Android】事件输入系统-代码层次解读
    【Android】事件处理系统
    【Android】窗口机制分析与UI管理系统
  • 原文地址:https://www.cnblogs.com/huzi007/p/7895577.html
Copyright © 2011-2022 走看看