假设我有一个@Transactional
在类或方法级别标记有的 Spring bean,并且在一些<aop:config>
用于添加事务建议的 Spring XML 中也有。
我认为这两种配置可以很好地协同工作,但是当 Spring 创建其上下文和代理时,如果配置不兼容(例如 PROPAGATION_MANDATORY 与 PROPAGATION_NEVER),那么哪个配置具有资历?
假设我有一个@Transactional
在类或方法级别标记有的 Spring bean,并且在一些<aop:config>
用于添加事务建议的 Spring XML 中也有。
我认为这两种配置可以很好地协同工作,但是当 Spring 创建其上下文和代理时,如果配置不兼容(例如 PROPAGATION_MANDATORY 与 PROPAGATION_NEVER),那么哪个配置具有资历?
要明确重复问题的答案,请使用:
<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”中的较低者具有优先权。