Spring事务(二)事务自定义标签
摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 目录 一、注册 InfrastructureAdvisorAutoProxyCreator 二、获取对应class/method的增强器 1. 寻找候选增强器 2. 候选增强器中寻找到匹配项 3. 提取事务标签 对于Spring中事务功能的代码分析,我们首先从配置文件开始人手,在配置文件中有这样一个配置:<tx:annotation-driven/>。可以说此处配置是事务的开关,如果没有此处配置,那么Spring中将不存在事务的功能。那么我们就从这个配置开始分析。 根据之前的分析,我们因此可以判断,在自定义标签中的解析过程中一定是做了一些辅助操作,于是我们先从自定义标签入手进行分析。 使用Idea搜索全局代码,关键字annotation-driven,最终锁定类TxNamespaceHandler,在TxNamespaceHandler中的 init 方法中: @Override public void init() { registerBeanDefinitionParser( "advice", new TxAdviceBeanDefinitionParser()); registerBeanDefinitionParser( " annotation