Spring Java配置上下文的事务配置

14

我已经苦苦挣扎几个小时了。

我试图将我的Spring XML配置迁移到全Java配置。

我正在使用AnnotationConfigApplicationContext作为上下文实现。

我无法找到这行代码在旧的XML配置中的Java等效版本:

<tx:annotation-driven transaction-manager="transactionManager" />
因此,Spring 不管理事务。在我的 Java 配置中,我已经初始化了与事务相关的 bean:session 工厂、事务管理器等等,但如果没有那行代码,就不会使用任何事务代理,因此实际上不存在任何事务。因此,我的问题是如何将该行代码转换为我的 Java 上下文配置,或者如何用另一种方式解决这个问题。感谢任何帮助。
3个回答

12

1
如何在此处指定要使用的事务管理器?例如 DataSourceTransactionManager。 - Sam2016

2
根据我的经验,完全用@Bean方式替换XML配置并不实际。有些东西在Java中进行配置更有意义,特别是您自己的bean定义。但是当涉及基础设施类型声明时,例如<tx:annotation-driven>,XML语法更加简洁。
您可以在纯Java中重现相同的效果,但最终会变得繁琐和不直观,因为像<tx:annotation-driven>这样的东西通常是复杂的低级Spring基础设施类的交互,您真的不想去碰它们。
我的建议是混合使用Java和XML各自的优点。这很容易做到。我喜欢保留普通的XML ApplicationContext类,然后在该XML上下文中将我的@Configuration类声明为bean,与<tx:annotation-driven>等内容并存。

1
不,我不这么认为。在现代Spring版本中,注释样式比Spring 3要丰富得多。 - skaffman
谢谢您的更新。这正是我所怀疑的。我们正在尝试将我们的遗留代码更新到Spring 4,并且作为该过程的一部分,我希望尽可能消除我们的XML配置(当然,只要它有意义,但我认为在大多数情况下,基于注释的方法是更好的选择)。 - GaZ

0

在导航链接时出现404响应,伙计。 - Todor Kolev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接