码迷,mamicode.com
首页 > 移动开发 > 详细

Spring NamespaceHandlerResolver xml的标签加载的扩展 和 ApplicationContext

时间:2019-11-27 19:28:16      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:uri   err   extends   nts   获取   npos   handler   ica   classpath   

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

标签:uri   err   extends   nts   获取   npos   handler   ica   classpath   

原文地址:https://www.cnblogs.com/zhongchang/p/11944502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!