Spring的class级别的@Transactional适用于哪些方法?
Spring's @Transactional on class level applies to what methods?
我有一个 class 有几种方法。有些是 public,有些不是。请参阅下面的示例。
什么方法将在事务上下文中执行? 只有 public 个?
我在 documentation 中找不到答案。
@Transactionl
public class A {
public void pub() {...}
void pack() {...}
protected void prot() {...}
private void pri() {...}
}
是的,只有 public 方法会显示事务设置。如果您将 @Transactional
注释放在私有、受保护或包可见的方法上或放在具有此类方法的 class 上,则不会引发任何错误,只是您的事务设置不会为这些方法执行。
因此在您的情况下,交易将仅通过此方法打开:
public void pub() {...}
可以找到文档 here。
我有一个 class 有几种方法。有些是 public,有些不是。请参阅下面的示例。
什么方法将在事务上下文中执行? 只有 public 个?
我在 documentation 中找不到答案。
@Transactionl
public class A {
public void pub() {...}
void pack() {...}
protected void prot() {...}
private void pri() {...}
}
是的,只有 public 方法会显示事务设置。如果您将 @Transactional
注释放在私有、受保护或包可见的方法上或放在具有此类方法的 class 上,则不会引发任何错误,只是您的事务设置不会为这些方法执行。
因此在您的情况下,交易将仅通过此方法打开:
public void pub() {...}
可以找到文档 here。