最流行的 Spring 注释之一是 @Transactional。以下是 Java 开发人员在使用它时最常犯的错误以及避免这些错误的步骤。
可能最常用的 Spring 注释之一是@Transactional。尽管它很受欢迎,但有时会被滥用,从而导致软件工程师不想要的东西。
在这篇文章中,我收集了我个人在项目中遇到的问题。我希望这份清单能帮助您更好地了解交易并帮助解决您的一些问题。
同一类中的调用
@Transactional很少被足够的测试覆盖,这意味着有些问题乍一看是不可见的。结果,您可以遇到以下代码:
public void registerAccount(Account acc) {
createAccount(acc);
notificationSrvc.sendVerificationEmail(acc);
}
@Transactional
public void createAccount(Account acc) {
accRepo.save(acc);
teamRepo.createPersonalTeam(acc);
}
在这种情况下,调用时registerAccount()
,保存用户和创建团队将不会在普通事务中执行。@Transactional由Aspect-Oriented Programming提供支持。因此,当从另一个 bean 调用一个 bean 时,就会发生处理。在上面的示例中,该方法是