Spring NamespaceHandlerResolver xml的标签加载的扩展 和 ApplicationContext
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的更多相关文章
- Spring Framework框架解析(1)- 从图书馆示例来看xml文件的加载过程
引言 这个系列是我阅读Spring源码后的一个总结,会从Spring Framework框架的整体结构进行分析,不会先入为主的讲解IOC或者AOP的原理,如果读者有使用Spring的经验再好不过.鉴于 ...
- Spring IoC容器 XML 配置与加载
IoC 容器 XML 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
- 抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗?
原文链接:抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗? 大家都知道,利用 Spring 整合 MyBatis,我们可以直接利用 @MapperScan 注解或者 @ ...
- spring启动component-scan类扫描加载过程(转)
文章转自 http://www.it165.net/pro/html/201406/15205.html 有朋友最近问到了 spring 加载类的过程,尤其是基于 annotation 注解的加载过程 ...
- MP实战系列(十八)之XML文件热加载
你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...
- 配置Spring的用于解决懒加载问题的过滤器
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" ...
- web.xml被文件加载过程,各节点加载顺序总结
web.xml被文件加载过程,各节点加载顺序总结 博客分类: J2EE WebXMLSpringServletBean 今天2010-3-11日,上班无事,想来将web.xml项目描述文件的加载过程 ...
- spring中IOC入口与加载步骤
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring-context.xml&q ...
- C#遍历XML文件动态加载菜单
通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...
随机推荐
- Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)
Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum) 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. ...
- 【神经网络与深度学习】gflags介绍
gflags是什么: gflags是google的一个开源的处理命令行参数的库,使用c++开发,具备python接口,可以替代getopt. gflags使用起来比getopt方便,但是不支持参数的简 ...
- 浅谈Web图像优化
前端优化有很多,图像优化也是其中的一部分.无论是渐进增强还是优雅降级,图像优化成为了开发上不可忽视的一部分. 知其然,须知其所以然 图像优化的前提是需要了解图像的基本原理.常规的图像格式分为矢量图和位 ...
- python+selenium调用JavaScript
有些浏览器的页面操作,不能依靠WebDriver提供的API来操作,需要借助JavaScript脚本. webdriver提供了execute_script()方法来执行JavaScript代码. f ...
- 一些css单位
https://blog.csdn.net/qq_40001322/article/details/80867289 1.em 在做手机端的时候经常会用到的做字体的尺寸单位 说白了 em就相当于“倍” ...
- Go语言流程控制(六)
go语言的流程控制主要有if , for和switch. if else(分支结构) go语言的if判断: func main() { score:=65 if score>=90{ fmt.P ...
- springboot笔记-使用JSP
Spring Boot 项目中使用 JSP: 项目结构:需要添加webapp文件夹用来存放目录 jsp 文件 spring-boot-jsp +-src +- main +- java +- reso ...
- 2019中山纪念中学夏令营-Day21[JZOJ]
2019中山纪念中学夏令营-Day21[JZOJ] 提高组(B组模拟赛)Team_B (由于本人太弱,并没有订正完题目) (题解大部分是从官方题解文件上摘来的) 日常膜拜大神:じやゆん蒟蒻 正文部分: ...
- MySQL中出现的小问题
./scripts/mysql_install_db: line 249: /app/mysql/bin/my_print_defaults: cannot execute binary fileNe ...
- EBS描述性弹性域及键弹性域总结
一.描述性弹性域 前言介绍: 描述性弹性域的实质就是系统预留自定字段,系统可以使用说明性弹性域来获取业务所特有的重要附加信息.系统可能自定义说明性弹性域,以显示存储更多信息的字段,提供一套完整的“自定 ...