@EnableLoadTimeWeaving我在与 AspectJ + @Transactional+的组合中遇到问题@HystrixCommand。
所以,我已经像这样配置了加载时编织:
@EnableLoadTimeWeaving(aspectjWeaving = ENABLED)
@EnableCaching(mode = AdviceMode.ASPECTJ)
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
加上仪器配置。
我有一个 bean A,@Transactional在其中用和方法注释,用 注释@HystrixCommand。
然后我有一个 bean B,也用 注释@Transactional,但是有propagation = Propagation.MANDATORY,这意味着它需要现有事务,否则失败。这个 bean 中还有一个方法,用@HystrixCommand.
最终,当我从 bean A 的方法调用 bean B 的方法时,我得到:No existing transaction found for transaction marked with propagation 'mandatory'。
我找了几个小时的问题:一切似乎都配置正确,所以我几乎放弃了。然后我只是试图@HystrixCommand从方法中删除。瞧:事务传播开始正常工作,异常消失了。
所以我想知道:为什么会@HystrixCommand中断事务传播?它与我使用加载时编织的事实有某种关系吗?还是预期的行为?有人可以阐明一下吗?
宝慕林4294392
相关分类