关于在Spring 中方法内部调用自身方法事务 REQUIRE_NEW 不生效的解释
问题来自: Spring事务的传播行为中REQUIRES_NEW真的有效吗 这个是Spring 对拦截的实现有关。Spring 拦截实现的方法是动态生成一个代理类。正常使用 @Autowired 注解注入的实际上就是这个代理类。 一。 对于有接口实现的类代理,Spring 使用的是 Java 自带的代理生成方式。这种方式对 target.method() 方式的调用是可以拦截到的,对于类内调用 method() 方式则拦截不到。 看以下代码 public interface DynamicProxyInterface { void a(); void b(); } public class DynamicProxy implements DynamicProxyInterface { @Override public void a() { System.out.println("this is a"); b(); } @Override public void b() { System.out.println("this is b"); } public static void main(String[] args) { DynamicProxy target = new DynamicProxy(); DynamicProxyInterface dynamicProxy =