Spring AOP基于XML方式笔记整理

XML AOP 加载流程
  1. ClassPathXmlApplicationContext#refresh
  2. AbstractApplicationContext#obtainFreshBeanFactory
  3. AbstractRefreshableApplicationContext#refreshBeanFactory
  4. 创建DefaultListableBeanFactory
  5. AbstractApplicationContext#loadBeanDefinitions(beanFactory)
  6. 创建XmlBeanDefinitionReader(beanFactory)
  7. AbstractApplicationContext#loadBeanDefinitions(beanDefinitionReader)
  8. AbstractBeanDefinitionReader#loadBeanDefinitions(locations)
  9. XmlBeanDefinitionReader#loadBeanDefinitions(encodedResource)
  10. XmlBeanDefinitionReader#doLoadBeanDefinitions(inputSource, resource)
  11. XmlBeanDefinitionReader#registerBeanDefinitions(doc, resource)
  12. 创建DefaultBeanDefinitionDocumentReader对象
  13. DefaultBeanDefinitionDocumentReader#registerBeanDefinitions(doc, readerContext)
  14. DefaultBeanDefinitionDocumentReader#doRegisterBeanDefinitions(element)
  15. DefaultBeanDefinitionDocumentReader#parseBeanDefinitions(element, delegate)
  16. 解析默认标签:DefaultBeanDefinitionDocumentReader#parseDefaultElement
  17. 解析非默认标签:BeanDefinitionParserDelegate#parseCustomElement(ele)
解析非默认标签
  1. 通过element获取namespaceUri
  2. 从readerContext中获取NamespaceHandler: DefaultNamespaceHandlerResolver
  3. DefaultNamespaceHandlerResolver#resolve(namespaceUri)
  4. 从META-INF/spring.handlers中加载所有的handlerMapping并根据namespaceUri获取匹配的值
  5. 实例化AopNamespaceHandler并调用init进行初始化,并返回实例对象
  6. NamespaceHandlerSupport#parse(element, parserContext) 解析标签beanDefinition信息
  7. 根据标签获取AopNamespaceHandler中注册的BeanDefinitionParser
  8. ConfigBeanDefinitionParser#parse(element, parserContext)解析pointcut, advisor, aspect信息
相关推荐
Wx-bishekaifayuan3 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
小白冲鸭4 小时前
【报错解决】使用@SpringJunitConfig时报空指针异常
spring·java后端开发
LuckyLay4 小时前
Spring学习笔记_27——@EnableLoadTimeWeaving
java·spring boot·spring
Stringzhua5 小时前
【SpringCloud】Kafka消息中间件
spring·spring cloud·kafka
成富9 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
鹿屿二向箔10 小时前
基于SSM(Spring + Spring MVC + MyBatis)框架的汽车租赁共享平台系统
spring·mvc·mybatis
豪宇刘10 小时前
SpringBoot+Shiro权限管理
java·spring boot·spring
一只爱打拳的程序猿11 小时前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
ajsbxi14 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
鹿屿二向箔15 小时前
基于SSM(Spring + Spring MVC + MyBatis)框架的咖啡馆管理系统
spring·mvc·mybatis