Implements/Implementing example
Sometimes when using $instanceof{}, you might just be interested in the methods coming from the implemented interface. There are two keywords that can be used in place of a method expression to acheive this: $implements{} - matches the methods from the interface(s) listed, but ignores any super interfaces $implementing{} - matches the methods from the interface(s) listed AND their super interfaces In this example ImplementsInterface extends ImplementsSuperInterface, and ImplementingInterface extends ImplementingSuperInterface. So for these bindings we will intercept our POJO class on all the methods coming from ImplementsInterface, i.e. methodsFromImplements(), and all methods coming from ImplementingInterface and ImplementingInterface's super interfaces, i.e. methodFromImplementingSuper() and methodFromImplementsSuper(). Note that if your class implements several interfaces, you can specify more than one interface in the $implements{}, $implementing{} list, as shown in this example pointcut expression: execution(void $instanceof{X}->$implementing{X,Y,Z}(..))