AspectJ pointcut към извикване на метод (дори ако се извиква на външни библиотеки)

Имам известни затруднения с използването на AJDT. Едно от нещата, които бих искал да имам, е запис на всеки метод, извикан към даден тип, например LinkedList. Това, което забелязах е, че използвайки pointcut по-долу, мога просто да пресича извикванията на метод към всеки метод, наречен add към всеки екземпляр, който имплементира интерфейса на колекцията:

pointcut CollectionAddCallPointcut(): call(* java.util.Collection+.add(..));

Доколкото виждам, това изключва извиквания на методи, направени във външни библиотеки, но те биха били много полезни за мен. Как мога да разреша това?


person rnunes    schedule 08.01.2013    source източник


Отговори (1)


Имате две възможности:

  1. Използвайте преплитане на времето за зареждане. Това ще преплете всички класове, докато се зареждат от програмата за зареждане на класове. Единственото предупреждение е, че е трудно да се вплита в jdk класове.
  2. Извършете сплитане по време на компилиране на всички библиотеки, към които искате да се приложи вашият pointcut.
person Andrew Eisenberg    schedule 09.01.2013