@EnableXXX原理:注解上有个XXXRegistrar,或通过XXXSelector引入XXXRegistrar,XXXRegistrar实现了
ImportBeanDefinitionRegistrar的registerBeanDefinitions方法,给容器注册XXXCreator。这个Creator实现了后置处理器,
后置处理器在对象创建以后,包装对象,返回一个代理对象,代理对象执行方法利用拦截器链进行调用
* 1)、@EnableTransactionManagement
* 利用TransactionManagementConfigurationSelector给容器中会导入组件
* 导入两个组件
* AutoProxyRegistrar
* ProxyTransactionManagementConfiguration
* 2)、AutoProxyRegistrar:
* 给容器中注册一个 InfrastructureAdvisorAutoProxyCreator 组件;
本文探讨了Spring框架中@EnableTransactionManagement注解的工作原理。通过@EnableTransactionManagement,Spring会注册TransactionManagementConfigurationSelector,该选择器进一步引导ImportBeanDefinitionRegistrar的registerBeanDefinitions方法,从而在应用上下文中创建TransactionManagementConfigurer。Configurer作为一个后置处理器,能够对目标对象进行包装,生成一个代理对象。当代理对象的方法被调用时,会利用AOP的拦截器链来处理事务。
订阅专栏 解锁全文
260





