跨两个数据源的事务管理(chainedtransactionmanager)-springboot

wqlqzqxt  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(1462)

为什么不推荐使用spring chainedtransactionmanager?spring是否提供了其他lib来支持多个事务管理器?
我的用途-case:- we 正在构建一个连接到两个数据源(比如db1和db2)的spring引导应用程序,该应用程序在两个数据库(db1和db2)上执行insert操作。我们的需求是这样的:insert->db1->successful insert->db2->error rollback db1
目前,我们使用的是chaninedtransactionmanager,它可以正常工作,但我可以看到lib被弃用了?所以,我只是想确定使用它是安全的,还是spring提供了任何替代lib,我们可以用它来替代它?

vmpqdwk3

vmpqdwk31#

因为api有改进。从文件中https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/transaction/chainedtransactionmanager.html
不是使用chainedtransactionmanager将回调附加到事务提交(预提交/后提交),而是注册transactionsynchronization以在出现异常时使用简化的语义显式地遵循事务清理。
您仍然可以自由地使用它,只是请记住,在将来的spring版本中,该类将被删除,如果不重构该部分,升级将不可能。

相关问题