22.1 指导文档章节

In the Web MVC framework, each DispatcherServlet has its own WebApplicationContext, which inherits all the beans already defined in the root WebApplicationContext.

解读

一、 DispatcherServlet 可以定义多个

二、 root WebApplicationContext 适用于所有的 DispatcherServlet ,换句话说是继承所有root中定义的bean。(经过实验,如果在root中定义一个单例bean,则这个bean的实例被所有servlet的上下文所共享,必须使用指定linstener才能加载root的配置文件 )

三、 可以通过 默认配置文件/初始化参数配置文件 定义自己私有的 context ,换句话说定义自己的beans.

备注

① 默认配置文件:

a file named [servlet-name]-servlet.xml in the WEB-INF directory .

② 初始化参数配置文件:

    <servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:s22-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

param-value 为 resources ,多种引入方式查看 8. Resources

通常使用 classpath:a/b/c.xml

Line n1: 2016-10-03 21:19:17 INFO XmlBeanDefinitionReader:317 - Loading XML bean definitions from ServletContext resource [/WEB-INF/s1-servlet.xml]
Line n2: 2016-10-03 21:19:18 INFO XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [s22-servlet.xml]

通过日志可以看出,默认形式使用的是servlet 规范,而自己指定 contextConfigLocation 则是 spring 的形式

这两种效果相同,都是为了加载spring bean ,这些bean 是绑定servlet的,在谁的里面声明了,谁就能用,其他servlet不能使用。

还可以说,如果不存在 root context,那么每个servlet 都有自己专属的上下文,自己声明的bean,只能在自己上下文中使用。

如果存在 root context ,那么root context 中定义的bean 被所有servlet 共享,是整个应用的上下文。(参数名同servlet init ,必须使用listener)

      <!-- Configuration locations must consist of one or more comma- or space-delimited
fully-qualified @Configuration classes. Fully-qualified packages may also be
specified for component-scanning -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:rootContext-Beans.xml</param-value>
</context-param> <!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<param-value>classpath:a.xml classpath:b.xml</param-value>

<param-value>classpath:a.xml,classpath:b.xml</param-value>

上面两个正确

<param-value>classpath:a.xml b.xml</param-value>

上面这个是错误的

已验证。

Spring MVC 指导文档解读(一)的更多相关文章

  1. Spring MVC 指导文档解读(二)

    Special Bean Types In the WebApplicationContext 解读 1.WebApplicationContext 特有的几种 Bean Types 2. 也表明 与 ...

  2. Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探

    Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便 ...

  3. 部署openstack的官网文档解读mysql的配置文件

    部署openstack的官网文档解读mysql的配置文件(使用与ubutu和centos7等系统) author:headsen chen  2017-10-12 16:57:11 个人原创,严禁转载 ...

  4. MSDN 单机 MVC 帮助文档

    因为微软的mvc框架也是从开源框架演变而来的,所以微软没把mvc帮助文档放到单击帮助文档中.sososos下载好msdn单机帮助后,却找不到 System.Web.MVC 等命名空间的东西. 解决办法 ...

  5. 【Java架构:基础技术】一篇文章搞掂:Spring Boot 官方文档解读

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文内容大部分是翻译和总结官方文档,可以到https://docs.spring.io/spring-boot/docs查看(此地 ...

  6. 集成 Spring Doc 接口文档和 knife4j-SpringBoot 2.7.2 实战基础

    优雅哥 SpringBoot 2.7.2 实战基础 - 04 -集成 Spring Doc 接口文档和 knife4j 前面已经集成 MyBatis Plus.Druid 数据源,开发了 5 个接口. ...

  7. Spring学习----- Spring配置文件xml文档的schema约束

    1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

  8. 关于Spring配置文件xml文档的schema约束

    最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  9. Spring中xml文档的schema约束

    最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例.   <?xml version= ...

随机推荐

  1. 42. Subsets && Subsets II

    Subsets Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset ...

  2. cocos2dx 2.0 CCScrollView的用法以及滑动的原理

    #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" USING_N ...

  3. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  4. mybatis-generator-core生成代码

    mybatis-generator-core-1.3.3下载地址:http://blog.mybatis.org/p/products.html 下载后名解压,进入lib目录 修改一个Generato ...

  5. LINUX下查看负载

    1,查看磁盘 df -h 2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat 3,查看cpu cat /proc/cpuinfo 只看cpu数量grep " ...

  6. 你需要知道的swift必备函数 map

    map这东西在oc中并未用过,但是swift在处理数组的时候显得格外的游刃有余,这归功于map这个函数: map函数  arr.map(<#T##transform: (Int) throws ...

  7. Android开发者必须掌握的知识技能清单

    1.Android平台原理机制.客户端性能优化.软件架构设计,熟悉Android应用开发框架,能独立开发高性能的Android应用 2.同步.异步.多线程.跨进程,数据结构和计算机系统和NDK即c++ ...

  8. [原创] 更新Ubuntu自带的python2.X版本 ImportError: No module named pip;ImportError: No module named _sqlite3

    Ubuntu14.04自带的Python2版本,是2.7.6的,想更新为最新的2.7.11,操作如下: 1. 从python官网下载2.7.11的source源码包 Python-2.7.11.tgz ...

  9. 借助 MySQLTuner 优化 MySQL 性能(转载的一篇文章)

    MySQLTuner 是一个 Perl 脚本,可以用来分析您的 MySQL 性能,并且基于收集到的信息给出相应的优化建议.这样子,您就可以调整 my.cnf 从而优化您的 MySQL 设置. 这边只是 ...

  10. eclipse 删除所有注释及空白行

    Ctrl+F 删除java注释:  /\*{1,2}[\s\S]*?\*/ Ctrl+F 删除xml注释:  <!-[\s\S]*?--> Ctrl+F 删除空白行:   ^\s*\n 选 ...