Конечно:
// match the call in outerMethod
pointcut callInnerMethod() : call(* Person.internalMethod(..));
Или
// match innerMethod itself
pointcut executeInnerMethod() : execution(* Person.internalMethod(..));
Вы можете комбинировать любой из них с before
, after
или around
советами:
void before() : callInnerMethod() /* or executeInnerMethod() */ {
// do something here
}
void around() : callInnerMethod() /* or executeInnerMethod() */{
// do something here
proceed();
// do something else here
}
void after() returning() : callInnerMethod() /* or executeInnerMethod() */{
// do something here
}
Обратите внимание, что это традиционный аспектj-синтаксис, который вы используете в .aj файлах.Вы также можете использовать все эти конструкции с разным синтаксисом в синтаксисе @AspectJ .java.
Пожалуйста, обратитесь к краткому справочнику AspectJ или прочитайте AspectJ в действии