NamespaceHandlerResolver

public NamespaceHandler resolver(String namespaceUri);

DefaultNamespaceHandlerResolver返回执行标签解析的 NamespaceHandler对象

DefaultNamespaceHandlerResolver implements NamespaceHandlerResolver

default_handler_mappings_location = "META-INF/spring.handlers";

spring.handlers文件的配置使用的NamespaceHandler对象

http\://www.springframework.org/schema/aop=cn.tk.***.aop.config.AopNamespaceHandler

AopNamespaceHandler extends NamespaceHandlerSupport

执行注册 BeanDefinitionParser 对象

public void init(){

registrerBeanDefinitionParser("config", new ConfigBeanDefinitionParser());

}

AOP标签的解析交给ConfigBeanDefinitionParser对象解析

ApplicationContext

ClassPathXmlApplicationContext --> AbstractXmlApplicationContext --> AbstratcRefreshableConfigApplicationContext -->

AbstractRefreshableApplicationContext --> AbstractApplicationContext

AbstractApplicationContext 中 refresh()方法

public void refresh() {

prepareRefresh();

获取BeanFactory

AutowireCapableBeanFactory beanFactory = obtainFreshBeanFactory();

执行 BeanFactoryPostProcessor 和 BeanDefinitionRegistryPostProcessor

registerBeanPostProcessors(beanFactory);

执行Bean的getBean()方法

finishBeanFactoryInitialization(beanFactory);

}

Spring NamespaceHandlerResolver xml的标签加载的扩展 和 ApplicationContext的更多相关文章

  1. Spring Framework框架解析(1)- 从图书馆示例来看xml文件的加载过程

    引言 这个系列是我阅读Spring源码后的一个总结,会从Spring Framework框架的整体结构进行分析,不会先入为主的讲解IOC或者AOP的原理,如果读者有使用Spring的经验再好不过.鉴于 ...

  2. Spring IoC容器 XML 配置与加载

    IoC 容器 XML 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  3. 抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗?

    原文链接:抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗? 大家都知道,利用 Spring 整合 MyBatis,我们可以直接利用 @MapperScan 注解或者 @ ...

  4. spring启动component-scan类扫描加载过程(转)

    文章转自 http://www.it165.net/pro/html/201406/15205.html 有朋友最近问到了 spring 加载类的过程,尤其是基于 annotation 注解的加载过程 ...

  5. MP实战系列(十八)之XML文件热加载

    你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...

  6. 配置Spring的用于解决懒加载问题的过滤器

    <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" ...

  7. web.xml被文件加载过程,各节点加载顺序总结

    web.xml被文件加载过程,各节点加载顺序总结 博客分类: J2EE WebXMLSpringServletBean  今天2010-3-11日,上班无事,想来将web.xml项目描述文件的加载过程 ...

  8. spring中IOC入口与加载步骤

    ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring-context.xml&q ...

  9. C#遍历XML文件动态加载菜单

    通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...

随机推荐

  1. 运行python manage.py 出现mportError: No module named django.core.management when using manage.py

    1 . linux下用virtualenv 创建虚拟空间环境没有安装djang,即使主机装了,否则运行python manage.py 出现mportError: No module named dj ...

  2. vs2008,windows mobile 6 搭建PDA开发环境相关软件下载

    1.Windows Mobile 6.5 Professional Developer Tool Kit (CHS).msi 下载地址:https://download.microsoft.com/d ...

  3. CodeForces 1249A --- Yet Another Dividing into Teams

    [CodeForces 1249A --- Yet Another Dividing into Teams] Description You are a coach of a group consis ...

  4. 3 Java Web 入门 1 Servlet 入门

    1 Tomcat 1.1 安装 JDK Oracle 官网 1.2 安装 Tomcat

  5. CTR点击率校准

    1. 概述 广告CTR预估过程中,正负样本比例差距较大,需要采样,但是采用后模型训练的结果是有偏的. 2. 校准方式 用逻辑回归作为激活函数

  6. requests-html快速入门

    昨天写了requests库好!最近requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜出来,这是一个解析HTML的库,而且用起来和requests一样爽,下面就来介绍 ...

  7. [c++] 用宏定义一个函数

    要点:变量都用括号括起来,防止出错,结尾不需要;.在实际编程中,不推荐把复杂的函数使用宏,不容易调试.多行用\ 要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和 ...

  8. linux 三剑客之sed常用总结

    sed 列出5-7行 [root@www ~]# nl /etc/passwd | sed -n '5,7p' -n不在处理前打印,搜索root,/p打印 nl /etc/passwd | sed ' ...

  9. 基于C# Socket实现多人网络聊天室

    首先不多说,最终实现界面如下,可以通过点击启动服务,开启TCP服务器: 开启TCP服务器之后,可以通过点击客户端,打开一个独立的TCP客户端,打开客户端之后,输入正确的IP地址和端口号,可以进行连接服 ...

  10. 浅析HBase:为高效的可扩展大规模分布式系统而生

    什么是HBase Apache HBase是运行在Hadoop集群上的数据库.为了实现更好的可扩展性(scalability),HBase放松了对ACID(数据库的原子性,一致性,隔离性和持久性)的要 ...