0
任何人都可以向我解釋AspectJ中運行時的「上下文綁定」是什麼,以及它與反射有什麼不同?
特別是,如果我需要從由給定方面編織類的註釋,上下文結合:什麼是AspectJ上下文綁定?
after(MyAnnotation annotation) : execution(* Foo.*(..)) && @this(annotation)
或反射:
MyAnnotation myAnnotation = thisJoinPoint.getThis().getClass().getAnnotation(MyAnnotation.class);
可以使用,但什麼是最好的解決方案(即最快的解決方案)?
謝謝,我糾正了錯誤。但是,請你給我更多的關於什麼是上下文綁定以及它是如何工作的見解?我找不到任何有用的信息。 – futtetennista
上下文綁定只是切入點內部發生的綁定的一個奇特術語。這發生在'@ this','''target','args'等內部。它與常規反射不同,因爲編譯器在編譯時確切知道要綁定什麼。但是,通過反射,編譯器會在運行時發生反射,因此優化時間會更加困難。如果你想了解更多關於實現的細節,那麼我建議在aspectj-users郵件列表上詢問:http://eclipse.org/aspectj/userlists.php –
非常感謝你的解釋! – futtetennista