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

我已经为此挣扎了几个小时了。

我正在尝试将我的Spring XML配置迁移到完全基于Java的配置。

我用作上下文实现。AnnotationConfigApplicationContext

我无法从我的旧XML配置中找到此行的Java等效项:

<tx:annotation-driven transaction-manager="transactionManager" />

因此,Spring不管理交易。

在我的Java配置中,我已经初始化了事务的相关bean:会话工厂,事务管理器等,但是如果没有该行,就不会使用事务代理,因此实际上没有事务。

所以我的问题是,如何将这一行转换为我的Java上下文配置,或者如何以另一种方式解决问题。

任何帮助是值得赞赏的。谢谢。


答案 1

现在,您可以使用@EnableTransactionManagement。

请参见: http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/


答案 2

根据我的经验,将 XML 配置完全替换为 -style 配置是不切实际的。有些东西在java中配置起来更有意义,特别是你自己的bean定义。但是当涉及到像这样的基础结构类型声明时,XML语法要简洁得多。@Bean<tx:annotation-driven>

你可以在纯java中重现相同的效果,但它最终会变得繁琐和不直观,因为像这样的东西通常是复杂的低级Spring基础设施类的交互,你真的不想碰。<tx:annotation-driven>

我的建议 - 混合搭配,使用Java和XML中的每一个都有自己的优势。这很容易做到。我更喜欢保留普通的 XML ApplicationContext 类,然后在该 XML 上下文中将我的类声明为 bean,以及类似 .@Configuration<tx:annotation-driven>


推荐