2015-11-04 32 views
2

我只是想了解關於Spring AOP的建議ordering.In的文檔的東西,它說多的建議同樣的方法執行的切入點 - Spring AOP的

當以同樣的角度定義的兩點建議兩者都需要在同一個連接點上運行,因此訂單未定義(,因爲無法通過反射爲javac編譯類檢索聲明訂單)。考慮將這些通知方法分解爲每個方面類中每個連接點的一個通知方法,或者將通知重構爲單獨的方面類 - 可以在方面級別進行排序。

我得到的,我們不能在一個Aspect.I定義相同的切入點多個建議只是想了解它的意思沒有辦法找回通過用於javac編譯的類反射的聲明順序? 。

我已經把@Order標註上相同的切入點多次建議在一個方面,並明確規定從1訂單3.爲什麼它時,它通過反射讀取@Order的看點類註釋不能得到這個數字順序值和請按正確的順序正確地調用建議?任何機構可以讓我明白這一點。很多預先提供的感謝

回答

1

這意味着,如果沒有明確指定,訂單是未定義的。 @Order註釋具有運行時保留:

@Retention(value=RUNTIME) 
@Target(value={TYPE,METHOD,FIELD}) 
public @interface Order 

而且它可以通過反射閱讀順序。