spring多个事务管理器问题

spring多个事务管理器问题,第1张

概述我有两个事务管理器在两个单独的spring xml文件中定义,并且它们都加载到spring上下文中文件一 <tx:annotation-driven transaction-manager='transactionManager1'/> <bean id='transactionManager1' class='or

我有两个事务管理器在两个单独的spring xml文件中定义,并且它们都加载到spring上下文中

文件一

   

文件二

 

如果我没有为下面的服务指出任何限定符,那么将使用哪个事务管理器spring.

public class TransactionalService {    @Transactional    public voID setSomething(String name) { ... }    @Transactional    public voID doSomething() { ... }}
最佳答案从官方文档中查看11.5.6 Using @Transactional

You can omit the transaction-manager attribute in the tag if the bean name of the PlatformTransactionManager that you want to wire in has the name transactionManager. If the PlatformTransactionManager bean that you want to dependency-inject has any other name,then you have to use the transaction-manager attribute explicitly […]

由于您的任何事务管理器都没有命名为transactionManager,因此必须指定哪个事务管理器应该用于标记为@Transactional的方法.

更新:解决您修改过的问题.您可以指定在@Transactional注释上使用哪个事务管理器(请参阅:@Transactional.value()):

@Transactional("transactionManager1")//...@Transactional("transactionManager2")//...

但是我发现您当前的设置有几个问题:

>你定义< tx:annotation-driven />两次与不同的交易经理.我不认为这样的配置是有效的
>没有明确提供事务管理器,应该使用哪一个?

我认为应该解决的解决方案是定义< tx:annotation-driven transaction-manager =“transactionManager1”/>一次并使用@Transactional使用第一个管理器和@Transactional(“transactionManager2”)来使用第二个管理器.或者相反. 总结

以上是内存溢出为你收集整理的spring多个事务管理器问题全部内容,希望文章能够帮你解决spring多个事务管理器问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)