Spring注解事务不支持 protect private 方法的原因

Spring注解事务不支持 protect private 方法的原因

AbstractFallbackTransactionAttributeSource中getTransactionAttribute方法调用了其本身的computeTransactionAttribute方法,如下图
Spring注解事务不支持 protect private 方法的原因,其中allowPublicMethodsOnly方法由子类AnnotationTransactionAttributeSource实现,该子类方法中默认是true,所以当你加了事务注解的方法不是public时,该方法直接返回null
Spring注解事务不支持 protect private 方法的原因
接下来是AopUtils.canApply方法
Spring注解事务不支持 protect private 方法的原因
由于canApply方法返回false所以没有添加对应的事务Advisor