Разница между вызовом и выполнением в АОП

Я пытаюсь понять разницу между выполнением и вызовом в АОП как можно проще. Насколько я понимаю, execute () добавит точку соединения в исполняемый код, поэтомуHelloWorldSayer.sayHello() в этом случае, но если точка былаcall()тогда точка соединения будетHelloWorldSayer.main(), Это правильно?

public class HelloWorldSayer {
    public static void main (String[] args) {
        sayHello();
    }

    public static void sayHello() {
        System.out.println("Hello");
    }
}

public aspect World {
    public hello():
        execution(static void HelloWorldSayer.sayHello());

    after() hello() {
        System.out.println("Bye");
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос