【问题标题】:Spring @Transactional conditional propagation propertySpring @Transactional 条件传播属性
【发布时间】:2017-01-18 15:39:25
【问题描述】:

由于多个事务的嵌入式 Derby 可战斗性问题,我需要根据应用程序启动的配置文件更改 @Transactional 的属性传播。

示例: 当应用程序使用配置文件启动以运行自动测试时,@Transactional 配置有默认传播 (Propagation.REQUIRED)。加载其他配置文件时,传播应设置为 Propagation.REQUIRES_NEW。

如何在 Java Config 中实现这一点?在 xml 配置中,我过去已经通过 aop:pointcut/aop:advisor 和 tx:advice 做到了这一点,但我在 Java Config 中找不到解决方法。

【问题讨论】:

  • @Transactional 注解有一些设置/属性,您可以在使用它时进行设置。这就是要走的路。还是您想以“全球时尚”的方式来做?
  • 是的,我知道,但是如何根据 Java Config 中的配置文件设置这些属性?

标签: java spring transactions transactional propagation


【解决方案1】:

我找到了一个可能的(丑陋的)解决方案。使用 @ImportResource 注释,我可以将一个 xml 文件导入我的根 java 配置文件,并在该文件中通过 AOP 执行我想要的配置。

@Configuration
@ImportResource("classpath:/spring-dataaccess-aop-config.xml")
@Import(...)
public class RootConfig {}

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2018-05-14
    • 2010-12-09
    • 2012-01-19
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多