当前位置: 首页 > news >正文

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信息
http://www.lryc.cn/news/216748.html

相关文章:

  • Docker HTTP(S) Proxy代理方式连接互联网
  • 华纳云:centos系统中怎么查看cpu信息?
  • 如何选择微信管理系统?
  • 文字的力量
  • 荒野大镖客emp.dll文件丢失的怎么办,快速修复游戏dll问题
  • 力扣labuladong——一刷day20
  • XSpirit 2智能边缘计算机使用测评
  • python实现MC协议(SLMP 3E帧)的TCP服务端(篇二)
  • nodejs express uniapp 图书借阅管理系统源码
  • 从零开始的目标检测和关键点检测(一):用labelme标注数据集
  • 【JVM经典面试题(五十二道)】
  • 高效管理:在文件夹名称左边添加关键字,实现批量重命名
  • Leetcode1122. 数组的相对排序
  • CN考研真题知识点二轮归纳(5)
  • windows系统 生成RSA密钥对
  • 大文件分片上传并发
  • 数据结构——基于顺序表实现通讯录
  • 行业追踪,2023-11-03
  • JSPv2之El
  • 出现 gpg: cancelled by user时的处理方法
  • MySQL中表的增删改查
  • web.py python服务器两种模板template使用方法
  • Flutter 01 目录结构入门
  • Esxi安装OpenWrt
  • tuple 简易实现(C++ 模板元编程)
  • Http代理与socks5代理有何区别?如何选择?(二)
  • java中main方法和@Test注解的区别
  • C++进阶语法——STL 标准模板库(下)(Standard Template Library)【学习笔记(七)】
  • 力扣:求最长公共前缀
  • Redis入门04-消息通知