我几个小时以来一直在努力。
我正在尝试将Spring XML配置迁移到完全基于Java的配置。
我正在使用AnnotationConfigApplicationContext
作为上下文实现。
我无法从旧的XML配置中找到此行的Java等效项:
<tx:annotation-driven transaction-manager="transactionManager" />
因此,Spring不管理交易。
在我的Java配置中,我已初始化了事务的相关bean:会话工厂,事务管理器等,但没有该行,则不使用任何事务代理,因此实际上没有事务处理。
所以我的问题是如何将该行转换为我的Java上下文配置或如何以另一种方式解决问题。
感谢任何帮助。 谢谢。
答案 0 :(得分:12)
您现在可以使用@EnableTransactionManagement。
请参阅:http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/
答案 1 :(得分:2)
根据我的经验,用@Bean
- style config完全替换XML配置是不切实际的。有些东西在java中配置更有意义,特别是你自己的bean定义。但是当谈到像<tx:annotation-driven>
这样的基础结构类型声明时,XML语法更加简洁。
你可以在纯java中重现相同的效果,但它最终会很麻烦且不直观,因为<tx:annotation-driven>
之类的东西通常是复杂的低级Spring基础结构类的交互真的不想碰。
我的建议 - 混合搭配,使用Java和XML各自的优势。这很容易做到。我更喜欢保留普通的XML ApplicationContext类,然后将我的@Configuration
类声明为XML上下文中的bean,以及<tx:annotation-driven>
之类的内容。
答案 2 :(得分:0)
看看https://spring.io/blog/2011/02/17/spring-3-1-m1-introducing-featurespecification-support。 Spring 3.1的FeatureSpecification类(如TxAnnotationDriven)旨在解决上述问题。