Insight Spring MVC 配置加载机制

原创 2018年02月01日 21:24:52

DispatcherServlet配置两种方式:

  • 指定配置文件路径,set contextConfigLocation
  • 配置文件使用约定的路径和命名方式
<!--声明指定配置文件路径,servlet.init()过程会转换ServletConfig,作为DispatcherServlet 初始化参数,完成contextConfigLocation的set操作-->
<servlet>
    <servlet-name>sample</servlet-name>
    <servlet-class>org.s.w.s.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:conf/sample-servlet.xml
        </param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

<!--加载约定(默认)路径/WEB-INF/{servlet-name}-servlet.xml-->
<servlet>
    <servlet-name>sample</servlet-name>
    <servlet-class>org.s.w.s.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

Insight 清单:

  • setConfigLocation支持多种符号分隔的多路径配置
// with distinct locations separated by commas, semicolons or whitespace.
// see org.springframework.web.servlet.FrameworkServlet
public void setConfigLocation(String location) {
    setConfigLocations(StringUtils.tokenizeToStringArray(location, CONFIG_LOCATION_DELIMITERS));
}
  • 如果没有声明指定configLocations,会尝试加载约定(默认)的配置
protected String[] getConfigLocations() {
    return (this.configLocations != null ? this.configLocations : getDefaultConfigLocations());
}
  • 约定路径即:/WEB-INF/ + getNamespace() + .xml
  • Spring core对于资源抽象为Resource接口,约定的配置文件体现为ServletContextResource
  • 约定的配置文件操作,委托给servletContext实现
public InputStream getInputStream() throws IOException {
    InputStream is = this.servletContext.getResourceAsStream(this.path);
    if (is == null) {
        throw new FileNotFoundException("Could not open " + getDescription());
    }
    return is;
}
  • 特别说明,Insight源码,注意基类的实现以及真正实现类的override ,否则很容易迷路、困惑。
版权声明:本文为博主原创文章,未经博主允许不得转载。

SpringMVC运行机制

1、客户端发送HTTP请求到服务器 2、SpringMVC的核心DispatcherServlet将请求交给HandlerMapping处理 3、HandlerMapping通过查询机制找到处理当...
  • z100871519
  • z100871519
  • 2015年03月12日 15:00
  • 410

Spring Insight 笔记 1 :Spring Insight 是什么?

读书笔记,随手意译,难免错漏,不作专业参考。 [Spring insight 是什么?]        Spring insight 是一个Web 应用,能够实时反应应用的行为和性能。能够让我们看...
  • origin100
  • origin100
  • 2012年03月12日 21:23
  • 5329

SpringMVC最基础配置

SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用。SpriingMVC不是太难,学习成本不高,现...
  • clj198606061111
  • clj198606061111
  • 2014年03月04日 23:23
  • 55224

Spring MVC配置介绍

一、Spring MVC 纵览Spring MVC就是Spring框架对MVC设计模式的实现,通过Spring MVC ,我们可以快速的构建灵活、松耦合的web服务。再具体介绍Spring MV...
  • suifeng3051
  • suifeng3051
  • 2016年06月06日 18:56
  • 5120

SpringMVC+fastjson配置

SpringMVC 4.2以下版本配置 register-defaults="true"> class="com.alibaba.fastjson.supp...
  • makinglove0231
  • makinglove0231
  • 2016年10月20日 17:17
  • 2388

SpringBoot8-Spring MVC-Spring MVC基本配置

Spring MVC的定制配置需要我们的配置类继承一个WebMvcConfigurerAdapter类,并在此类使用@EnableWebMvc注解,并开启对Spring MVC的配置支持,这样我们就可...
  • wj903829182
  • wj903829182
  • 2017年07月25日 22:33
  • 3237

spring mvc aop配置事务的相关配置

一共四个配置文件包括web.xml spring-hibernate.xml
  • u014484873
  • u014484873
  • 2016年04月28日 08:52
  • 2287

玩转Spring MVC(三)----spring基本配置文件

这篇文章总结一下spring mvc的基本配置,首先贴一张我的项目的目录截图,有一些多余的文件,大家不必在意: 下面这张图是spring基本配置会用到的一些包都放在lib文件里: 接下来是we...
  • u012116457
  • u012116457
  • 2015年02月05日 15:10
  • 22584

Spring boot入门五 spring mvc spring boot mybatis配置整合

备注: 通过前面几章的操作,对Spring Boot已经有了基本的了解,不过Spring Boot他也仅仅是个封装集成引用的盒子而已,需要与具体的项目相结合才能真正的使用起来,主要是记录下 使用Spr...
  • vtopqx
  • vtopqx
  • 2017年08月30日 17:34
  • 1404

spring MVC 国际化实现配置

众里寻他千百度,蓦然回首,那人却在灯火阑珊处。。。。 这两天,一直被国际化所困扰着,一直在查询资料 ,从自己手动实现,到找到最佳实现方案,才知道,其实国际化很简单,现在将我的总结分享给大家。。。。 其...
  • u010251897
  • u010251897
  • 2016年09月02日 10:04
  • 2808
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Insight Spring MVC 配置加载机制
举报原因:
原因补充:

(最多只允许输入30个字)