1. 先找到这个注解: image.png 2. 会自动加载这个类 image.png 3. 默认为mode = PROXY, 进入这个类 image.png 4. ProxyTransactionManagementConfiguration 类 image.png 5. 看TransactionInterceptor 类 image.png 6. invokeWithinTransaction 方法 image.png 7. 发现没有找到注入的类 image.png 8. 找到父类 image.png 9. 找到实现方法 image.png 10. 看到对目标方法是public的校验 image.png 11. 得出结果,为什么@Transactional加在private上无效 image.png 12. 再深入看AbstractFallbackTransactionAttributeSource 类可以知道@Transactional的注解解析器是:SpringTransactionAnnotationParser image.png