如下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了

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

spring 配置文件被加载两次相关推荐

  1. spring 配置文件无法加载,junit找不到xml配置文件java.lang.IllegalStateException: Failed to load ApplicationContext...

    最近遇到一个奇怪的问题.maven项目再进行junit单元测试的时候发现无法加载配置文件.一会能加载一会又不能加载.然后试了在src/main/resource下面的配置文件放到src/test/re ...

  2. Spring mvc 启动配置文件加载两遍问题

    问题描述 在使用spring mvc 启动的时候,用到了一个在程序启动时加载的配置方法init-method="initLoad",并启动多线程来做数据同步,但是在程序启动之后发现 ...

  3. Spring框架如何加载和定义Spring Bean类?

    本篇介绍什么是Spring Bean类,如何创建Bean类,以及如何将Bean类添加到Spring IOC容器.通过本篇的学习,可以达成如下目标. ● 认识Spring Bean类 ● 掌握Bean类 ...

  4. Spring Boot 配置文件的加载优先级

    1. 前言 今天突发奇想,如果Spring Boot的配置文件同时存在application.properties和application.yaml,于是便测试了一波.结果测出来优先级的顺序为 pro ...

  5. springboot 读取配置文件_使用 @ConfigurationProperties 在 Spring Boot 中加载配置

    本文地址: 使用 @ConfigurationProperties 在 Spring Boot 中加载配置 使用 Spring Boot 加载配置文件的配置非常便利,我们只需要使用一些注解配置一下就能 ...

  6. Spring中ApplicationContext加载机制和配置初始化

    转自:http://liuwei1578.blog.163.com/blog/static/495803642007116111923195/ Spring中ApplicationContext加载机 ...

  7. spring配置中加载properties文件方法

    首先,遇到一个问题,spring配置中加载properties文件配置如下: <context:property-placeholder ignore-unresolvable="tr ...

  8. Struts2框架概述、Struts简介、Struts环境搭建、Struts执行流程、Struts文档、Struts配置文件的加载顺序-day01

    目录 第一节 框架概述 1.1 什么是框架 1.2 三大框架 1.3 三层架构 1.4 MVC.Servlet.Filter MVC Servlet Filter 第二节 Struts简介 2.1 S ...

  9. Spring解析,加载及实例化Bean的顺序(零配置)

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:jb_hz blog.csdn.net/qq_2752 ...

最新文章

  1. 打印表格_表格怎么打印出来
  2. 穷不过三代,囧不过三个公司——程序员如何通过努力让自己看上去很光鲜
  3. csp真题字符串匹配c语言,CCF CSP认证考试历年真题 模板生成系统 C语言实现
  4. android 控件 margin,Android MarginDesign控件TabLayout导航栏使用详解
  5. 爬虫入门四(多线程爬虫)
  6. CentOS Linux 7绑定静态IP方法
  7. 5G iPhone,再等一年,有三款!
  8. C++四种强制类型转换解析
  9. 最新电脑为什么用ghost无法安装系统?安装版正常,是何原因?
  10. 如何搭建maven中,分布式工程
  11. C. Tourist Problem
  12. 愚公移山第一章伪代码
  13. C++设计模式 - 适配器模式(Adapter)
  14. 谷歌浏览器将网页保存为图片或者pdf
  15. 光纤交换机 序列号_cisco查看光模块型号序列号命令
  16. cocos creator飞机大战总结
  17. 我的大学十年 (转)
  18. 计算机常见故障维修方法,电脑常见故障,手把手教你电脑故障维修技巧
  19. ViGEM 车载高速数据记录仪 自动驾驶/信息娱乐测试
  20. Mysql 多表联查索引失效问题

热门文章

  1. POJ-1001 求高精度幂
  2. Oracle中奇怪的【不等于号】
  3. InformaticaPowerCenter调用存储过程
  4. 敏捷 - #2 原则:欢迎更改要求 ( #2 Agile - Principle)
  5. 查询各种物流运输信息
  6. ubuntu下创建c语言程序之hello world
  7. 使用浏览器地址栏调用CXF Webservice的写法
  8. (转)Linux传输大文件(分割传输)
  9. Java排序之归并排序
  10. 移动设备尚未形成DDoS的3个原因