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信息
相关推荐
A.说学逗唱的Coke38 分钟前
【大模型专题】Spring AI Alibaba × Skill 整合实战:让 AI 真正“会干活
java·人工智能·spring
砍材农夫2 小时前
物联网实战|Spring Boot + Netty 搭建 MQTT 消息路由与流转层
java·spring boot·后端·物联网·spring
swordbob2 小时前
3 大 I/O 模型BIO / NIO / AIO
java·linux·spring
swordbob2 小时前
CAP 定理:为什么不能同时实现 C、A、P?
开发语言·后端·spring
二哈赛车手3 小时前
新人笔记---idea索引失效问题解决方案
java·笔记·spring·elasticsearch·intellij-idea
韩小兔修媛史4 小时前
SpringCloud八股文面试
spring·spring cloud·面试
至此流年莫相忘4 小时前
Spring 依赖注入三剑客:@Autowired、@Resource 与 @RequiredArgsConstructor 深度对比与实战指南
java·数据库·spring
shushangyun_4 小时前
批发商城系统源码多少钱?2026最新报价一览
java·开发语言·人工智能·spring·spring cloud
小易撩挨踢5 小时前
[特殊字符] Spring AI 2.0.0 正式发布:大版本升级,MCP 原生集成 + Anthropic SDK 全线重构
人工智能·spring·重构
柏舟飞流5 小时前
Spring Boot + Spring Security + RBAC:从登录鉴权到权限模型设计
java·spring boot·spring