foo*_*sus 40 spring transactions
我有一些遗留代码,我现在正试图在Spring下重用.这段代码深深地嵌套在其他代码中,因此重新设计并不常用,在许多情况下都会调用,其中只有一些是通过Spring实现的.我想做的是使用Spring事务,如果已经启动了; 否则,继续使用现有(传统)数据库连接机制.我们的第一个想法是让我们的遗产类成为一个bean并使用注入TransactionPlatformManager,但似乎没有任何方法与我们的情况密切相关.一些研究表明Spring有一个叫做TransactionSynchronizationManager静态方法的类isActualTransactionActive().我的测试表明这种方法是检测Spring事务是否处于活动状态的可靠方法:
@Transactional注释的Spring服务调用时,它返回false@Transactional,它返回true我的问题:有没有更好的方法来检测交易是否有效?
Boz*_*zho 48
没有比这更好的方法了TransactionSynchronizationManager.isActualTransactionActive().它是spring用来处理事务的实用方法.虽然不建议在您的代码中使用它,但对于某些特定情况,您应该 - 这就是为什么它是公开的.
另一种方法可能是使用实体管理器/会话/连接并检查是否存在现有事务,但我更喜欢同步管理器.
| 归档时间: |
|
| 查看次数: |
13159 次 |
| 最近记录: |