簡體   English   中英

在春季訂購第三方Aspect

[英]Ordering third party Aspect in Spring

我有一個新的看點,我想申請@Around帶注釋服務方法@HystrixCommand 由於有注釋,因此將自動應用HystrixCommandAspect

但是, HystrixCommandAspect沒有定義@Order ,我懷疑這意味着它默認為Integer.MAX_VALUE (即應最后執行)。 我需要我的方面最后運行,因為HystrixCommandAspect在另一個線程上執行service方法,而我的方面需要在該線程上運行(原因在這里可能並不重要,但涉及線程本地存儲)。

似乎當@Order有一個平局時,順序以某種方式由Spring的組件掃描確定。 有沒有辦法手動指定Spring應用這些方面的順序(假設我不能更改HystrixCommandAspect@Order )?

您可以嘗試使用@DeclarePrecedence ,例如:

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclarePrecedence;

@Aspect
@DeclarePrecedence("*, com.example.HystrixCommandAspect, com.example.YourCustomAspect")
public class AspectOrder {
}

可能需要您切換到AspectJ。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM