4

假设我有一个@Transactional在类或方法级别标记有的 Spring bean,并且在一些<aop:config>用于添加事务建议的 Spring XML 中也有。

我认为这两种配置可以很好地协同工作,但是当 Spring 创建其上下文和代理时,如果配置不兼容(例如 PROPAGATION_MANDATORY 与 PROPAGATION_NEVER),那么哪个配置具有资历?

4

1 回答 1

2

要明确重复问题的答案,请使用:

    <tx:annotation-driven transaction-manager="txManager" order="X"/>

    <tx:advice id="txAdvice" transaction-manager="txManager">

    <aop:config>
            <aop:pointcut id="pointcut" expression="..."/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" order="Y"/>
    </aop:config>

...其中“X”和“Y”中的较低者具有优先权。

关于该主题的 Spring Docs

于 2012-09-03T09:24:13.363 回答