如果你使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的。如下

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

Spring会创建一个全局的WebApplicationContext上下文,称为根上下文 ,保存在 ServletContext中,

key是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE属性的值。

可以使用工具类取出上下文:WebApplicationContextUtils.getWebApplicationContext(ServletContext);

DispatcherServlet是一个Servlet,可以同时配置多个,每个 DispatcherServlet有一个自己的 WebApplicationContext上下文,这个上下文继承了 根上下文 中所有东西,保存在 ServletContext中,

key是"org.springframework.web.servlet.FrameworkServlet.CONTEXT"+Servlet名称。

当一个Request对象产生时,会把这个WebApplicationContext上下文保存在Request对象中,

key是DispatcherServlet.class.getName() + ".CONTEXT"。

可以使用工具类取出上下文:RequestContextUtils.getWebApplicationContext(request);

Spring中的 ApplicationContext实例可以被限制在不同的作用域(scope)中。

在web MVC框架中,每个 DispatcherServlet有它自己的WebApplicationContext ,这个context继承了根WebApplicationContext 的所有bean定义。

这些继承的bean也可以在每个serlvet自己的所属的域中被覆盖(override),覆盖后的bean 可以被设置上只有这个servlet实例自己使用的属性。

总结:不使用listener监听器来加载spring的配置,改用DispatcherServlet来加载spring的配置,不要双亲上下文,只使用一个DispatcherServlet,事情就简单了,什么麻烦事儿也没有了。

spring mvc 双亲上下文问题相关推荐

  1. Spring MVC 双亲上下文的说明

    如果你使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的.如下 Java代码  <listener> &l ...

  2. Spring MVC源码——Root WebApplicationContext

    Spring MVC源码--Root WebApplicationContext 打算开始读一些框架的源码,先拿 Spring MVC 练练手,欢迎点击这里访问我的源码注释, SpringMVC官方文 ...

  3. Spring Spring MVC Hibernate 整合备忘

    以下为此三种框架整合配置的详细备注,以及部分问题备忘 项目结构和配置文件可访问 Github 查看 1. pom.xml 尽量使用 Maven 管理项目依赖以减少包引入时的麻烦,以及避免跨开发工具问题 ...

  4. Spring MVC 教程,快速入门,深入分析【转】

    2019独角兽企业重金招聘Python工程师标准>>> 转自:赵磊 地址:http://elf8848.iteye.com 目录  一.前言 二.spring mvc 核心类与接口 ...

  5. spring mvc 思想

    目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说 ...

  6. Spring MVC 教程,快速入门,深入分析

    目录  转载自:http://elf8848.iteye.com/blog/875830 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf 点击打开链接 SpringMVC核 ...

  7. Spring mvc 上下文初始化过程

    为什么80%的码农都做不了架构师?>>>    在软件开发的中,如果某些特性的使用比较普遍,那么这些特性往往可以作为平台特性来实现,通过对这些平台特性进行有效的封装,使其向其他应用开 ...

  8. Spring MVC上下文父子容器

    2019独角兽企业重金招聘Python工程师标准>>> Spring MVC上下文父子容器 博客分类: java spring 在Spring MVC的启动依赖Spring框架,有时 ...

  9. spring mvc 总结

    为什么80%的码农都做不了架构师?>>>    一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 ...

最新文章

  1. ELK结合logback搭建日志中心
  2. eAccelerator(eacc)安装配置笔记
  3. 初步了解Windows应用程序内存结构 - 使用VMMAP工具
  4. php sql 字段名称,PHPSQL Server – 字段名称被截断
  5. Java 静态内部类与非静态内部类【复习】
  6. python中常见的运行时错误_常见Python运行时错误之一
  7. python在txt中的替换数据清洗_数据清洗过程中常见的排序和去重操作
  8. 可穿戴设备创业:现在和未来
  9. ADSL拨号中出现的错误代码
  10. Python学习杂记之静态网页学习
  11. 创建永远隐藏的隐藏帐号
  12. iDesktop点数据集构建DEM时三种插值方式的选择
  13. Git报错:The file will have its original line endings in your working directory
  14. 2015春计算机应用技术基础,计算机应用技术基础.doc
  15. 对软件开发人员的几个阶段思考和总结
  16. 快闪类企业校园招聘H5,这么设计才够炫!
  17. 《Unsupervised Monocular Depth Learning in Dynamic Scenes》论文笔记
  18. JackHttp -- 浅谈编码、加密(对称加密,非对称加密,Hash算法)
  19. 离散数学对学计算机有什么用?
  20. 安卓学习 Day18:利用单选按钮实现底部导航条

热门文章

  1. Java 格式化xml字符串
  2. 电子竞技作为一项全新的竞技体育项目,近年来发展迅猛,未来发展趋势
  3. play框架用起来(3)
  4. 提升网站运营效果的方法有哪些?网站运营有什么方法和技巧?
  5. C指针之指针与数组的天生姻缘
  6. 什么东西改善睡眠质量,辅助睡眠好物推荐
  7. golang 撤回_golang 连接mongoDB的方法示例
  8. 【多目标优化】Pareto最优解很少
  9. spring boot启动后控制台没有端口信息打印日志也很少
  10. 《魔兽世界》室外光照