如何更改配置文件使用的@Transactional transactionManager?

时间:2015-11-27 16:55:00

标签: java spring spring-transactions

我在应用程序中有两个TransactionManagers。 我使用-Dspring.profiles.active=dev/test/prod运行应用程序。

@Service
@org.springframework.transaction.annotation.Transactional("txName")
public class MyService {

}

现在,根据配置文件,我想更改事务管理器名称。因此,在开发配置文件中自动使用txDev,而prod会使用txProd作为名称。

这可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

仅使用一个事务管理器并在配置文件中设置

@Service
@Transactional
public class MyService {}

在xml中(与java config相同的逻辑)

<beans profile="prod">
    <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
</beans>

<beans profile="dev">
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" />
</beans>