springMVC--XML解析
一 springMVC 入口
web.xml; DispatcherServlet
二 初始化过程
1.寻找init();
查看DispatcherServlet时候时,继承自servlet,肯定有初始化方法,DispatcherServlet继承自FrameworkServlet
FrameworkServlet继承自HttpServletBean
HttpServletBean继承自HttpServlet,在HttpServlet中寻找到了init()方法
2.init做了那些事
HttpServletBean中,init方法中,通过 PropertyValues 包装属性,BeanWrapper 包装bean ,ResourceLoader 加载资源文件,initServletBean执行,但是此方法是空的
因此需要在子类中查找此方法。
FrameworkServlet中对initServletBean进行了重写,进入此方法中,首先是打印日志,其次执行initWebApplicationContext方法,进入initWebApplicationContext方法,调用了 configureAndRefreshWebApplicationContext方法,进入configureAndRefreshWebApplicationContext方法,ConfigurableEnvironment类负责配置文件是否起作用,在bean.xml中contex标签中profile ="true";wac.refresh()方法
AbstractApplicationContext中重写了refresh方法,此方法很重要
1.xml解析
2.annotation的支持
AbstractApplicationContext#refresh-->obtainFreshBeanFactory-->refreshBeanFactory
AbstractRefreshableApplicationContext#refreshBeanFactory-->loadBeanDefinitions(xml annotation)
AbstractXmlApplicationContext#loadBeanDefinitions-->loadBeanDefinitions-->loadBeanDefinitions
AbstractBeanDefinitionReader#loadBeanDefinitions-->loadBeanDefinitions
XmlBeanDefinitionReader#loadBeanDefinitions-->loadBeanDefinitions-->doLoadBeanDefinitions-->registerBeanDefinitions
DefaultBeanDefinitionDocumentReader#registerBeanDefinitions-->doRegisterBeanDefinitions-->parseBeanDefinitions 此处开始分流 解析xml分默认解析和自定义解析
解析xml parseDefaultElement 解析默认 import alias bean beans
parseCustomElement 解析自定义标签
自定义解析: parseCustomElement
NamespaceHandler
<context:property-placeholder location="classpath:config.properties" profile="true" />
<!-- 加载数据库配置文件 -->
<!-- 激活Spring注解方式:自动扫描,并注入bean -->
<context:component-scan base-package="com.dongnao" />
<context:annotation-config />
context找uri,beans有content对应的uri
spring.handlers里面就有uri对应的处理类,实现NamespaceHandler,会把这个命名空间对应的标签对应的处理注册进来
springMVC--XML解析的更多相关文章
- SpringMVC视图解析器
SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视 图解析器.当我们对SpringMVC控制的资源发起 ...
- SpringMVC视图解析器(转)
前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器.当我们对SpringMVC控制的资源发起请求时,这些请求都会被Sprin ...
- SpringMVC 视图解析器
SpringMVC 视图解析器 还记得SpringMVC 快速入门中,dispatcher-servlet.xml 配置的视图解析器么.它是SpringMVC 的核心知识点.本章节比较简单,明白视图解 ...
- 关于springMVC中component-scan的问题以及springmvc.xml整理
关于springMVC中component-scan的问题以及springmvc.xml整理 一.component-scan问题和解决办法 最近在学习使用springMVC+myba ...
- springmvc.xml 中 <url-pattern></url-pattern>节点详解
1. 先来上段常见的代码 <!-- MVC Servlet --> <servlet> <servlet-name>springServlet</servl ...
- springmvc.xml,context.xml和web.xml
1:springmvc.xml配置要点 一般它主要配置Controller的组件扫描器和视图解析器 下为:springmvc.xml文件 <?xml version="1.0" ...
- springmvc访问静态资源的springmvc.xml配置
一. 问题及需求 由于Spring MVC的web.xml文件中关于DispatcherServlet拦截url的配置为"/",拦截了所有的请求,同时*.js,*.jpg等静态资源 ...
- springmvc.xml和applicationContext.xml配置的特点
1:springmvc.xml配置要点 一般它主要配置Controller的组件扫描器和视图解析器 下为:springmvc.xml文件 <?xml version="1.0" ...
- Spring Boot实践——SpringMVC视图解析
一.注解说明 在spring-boot+spring mvc 的项目中,有些时候我们需要自己配置一些项目的设置,就会涉及到这三个,那么,他们之间有什么关系呢? 首先,@EnableWebMvc=Web ...
- SpringMVC-核心配置文件spring-mvc.xml
@Spring-MVC.xml @MVC的注解驱动 Bean模式 上面源码的配置我们看到了,其中映射器和适配器的注解模式是过时的所以我们需要重新配置一下. <!-- 配置处理器映射器 --> ...
随机推荐
- python之基于libsvm识别数字验证码
1. 参考 字符型图片验证码识别完整过程及Python实现 2.图片预处理和手动分类 (1)分析图片 from PIL import Image img = Image.open('nums/ttt. ...
- numpy的索引-【老鱼学numpy】
简单的索引值 import numpy as np a = np.arange(3, 15).reshape(3, 4) print("a=") print(a) print(&q ...
- Android人脸检测1(静态图片)
搭建Android人脸识别环境花了很长时间(可以查看之前的文章),解决Android开发中的杂七杂八小问题也耗时不少. 今天记录一下,点击选择照片或者拍照上传照片进行人脸检测的小demo. (andr ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- Linux基础系统优化
Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和ip等参数 ifup,ifdown 脚本命 ...
- Ubuntu12.04 LTS 32位 安装ns-2.35
ubuntu12.04lts 32-bit默认采用gcc 4.6和g++4.6,而ns的最新版本ns 2.3.5也采用了相同到版本,所以这方面不会有版本不同到问题 收回上面这句话..../valida ...
- 双接口(回调)promise cb
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python学习:注释、获取用户输入、字符串拼接、运算符、表达式
注释 #为单行注释'''三个单引号(或者"""三个双引号)为多行注释,例如'''被注释的内容''' '''三个单引号还可以起到多行打印的功能. #ctrl+? 选中的多行 ...
- Java 常见异常种类
Java Exception: 1.Error 2.Runtime Exception 运行时异常3.Exception 4.throw 用户自定义异常 异常类分两大类型:Error类代表了编译和系统 ...
- CSS3 三次贝塞尔曲线(cubic-bezier)
例子:transition:all 1s cubic-bezier(.21,.2,.65,.1) 最近在看animation模块,其中animation-timing-function 和 trans ...