如何在Spring Proxy中的Private方法上创建@Trasactional

时间:2019-10-17 12:52:12

标签: spring spring-boot transactions spring-transactions

这是代码段。

public class A{

  public void m1(){
    //Do some stuff
    m2();
  }

 @Transactional
 private m2(){
   // Some DB operations
 }
}

在上面的代码中, @Transactional 不起作用。

有没有一种方法可以仅在私有方法上创建 @Transactional (而不是在公共方法上)?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

@Transactional保留在私有方法上是没有目的的,因为该方法最终在类本身中被调用。因此代理永远不会应用于该方法。

  

使用代理时,应应用@Transactional批注   仅适用于具有公众知名度的方法。如果您做受保护的注释,   带有@Transactional批注的私有或程序包可见方法,   不会引发任何错误,但是带注释的方法不会显示   配置的交易设置。