Spring AOP 自调用失效的代理边界:从 JDK 动态代理到 CGLIB 的陷阱
订单服务里内部方法调用导致 @Transactional 不生效,是 Spring AOP 代理边界的典型表现。文章从 JDK 动态代理与 CGLIB 的生成方式讲起,解释 this 与代理对象的区别、事务与缓存切面为何被绕过,并对比自注入、AopContext、拆分 Bean 与 AspectJ 织入的适用条件与代价。
共 1 篇文章
订单服务里内部方法调用导致 @Transactional 不生效,是 Spring AOP 代理边界的典型表现。文章从 JDK 动态代理与 CGLIB 的生成方式讲起,解释 this 与代理对象的区别、事务与缓存切面为何被绕过,并对比自注入、AopContext、拆分 Bean 与 AspectJ 织入的适用条件与代价。