从源码看:为什么@Transactional加非Public方法
2020-08-17 本文已影响0人
Java酸不酸
1. 先找到这个注解:

2. 会自动加载这个类

3. 默认为mode = PROXY, 进入这个类

4. ProxyTransactionManagementConfiguration 类

5. 看TransactionInterceptor 类

6. invokeWithinTransaction 方法

7. 发现没有找到注入的类

8. 找到父类

9. 找到实现方法

10. 看到对目标方法是public的校验

11. 得出结果,为什么@Transactional加在private上无效

12. 再深入看AbstractFallbackTransactionAttributeSource 类可以知道@Transactional的注解解析器是:SpringTransactionAnnotationParser
