То, что я ищу, - это способ указать pointcut вокруг переменной уровня класса. Что-то вроде:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.FIELD)
@interface MyPointCut
{
}
public class Foo
{
@MyPointCut
BarAPI api = new BarAPI();
}
@Aspect
public class MyAspect
{
@Around(value="execution(* *(..)) && @annotation(MyPointCut)")
public Object doSomethingBeforeAndAfterEachMethodCall()
{
...
}
}
Затем я хотел бы иметь аспект, который выполняет некоторую работу до и после каждого вызова метода поля api. Это выполнимо? Не могли бы вы указать мне какую-нибудь документацию, где я могу прочитать, как это сделать?