您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么即使在Spring服务类的第二种方法中,即使propagation = Propagation.REQUIRES_NEW,事务也会回滚?

为什么即使在Spring服务类的第二种方法中,即使propagation = Propagation.REQUIRES_NEW,事务也会回滚?

Spring的声明式事务处理使用AOP代理进行工作。当您获得事务性bean时,实际上您会获得一个代理,该代理包装您的bean实例,拦截方法调用,必要时启动事务,然后调用实际bean的方法,然后在必要时提交或回滚事务。

但是您是从同一个bean内的另一个方法调用bean的方法,因此代理被绕过,并且无法应用任何事务行为。

方法放在另一个bean中,或使用AspectJ,后者检测字节码并可以拦截bean内部方法调用

有关更详细的说明,请参见Spring文档

Java 2022/1/1 18:14:31 有595人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶