Spring NamespaceHandlerResolver xml的标签加载的扩展 和 ApplicationContext
Posted java.matt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签
Spring框架--Spring事务管理和Spring事务传播行为