@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中斷事務傳播?它與我使用加載時編織的事實有某種關系嗎?還是預期的行為?有人可以闡明一下嗎?
加載時編織 (AspectJ):Hystrix 中斷事務傳播
慕桂英3389331
2023-04-26 13:59:37