Учитывая следующие примеры классов в my.package
...
public class Foo {
public void logicNotInBar() {/*code*/}
public void logicBarOverrides() {/*code*/}
}
public class Bar extends Foo {
public void logicBarOverrides() {/*code*/}
}
и следующие точки Spring-AOP ...
<aop:pointcut id="myPointcutAll" expression="execution(* my.package.*.*(..))" />
<aop:pointcut id="myPointcutFoo" expression="execution(* my.package.Foo.*(..))" />
<aop:pointcut id="myPointcutBar" expression="execution(* my.package.Bar.*(..))" />
Каков результат рекомендации, примененной к вышеуказанным pointcut в случаях Bar? В частности ...
Bar bar = new Bar();
bar.logicNotInBar(); // will myPointcutBar advice trigger?
bar.logicBarOverrides(); // is myPointcutFoo ignored here?
Я думаю, что мне не хватает какой-то основной истины о том, как pointcuts взаимодействуют с наследованием, поэтому объяснение / документация под капотом, вероятно, будет иметь большое значение.