== aspects that do not fire == { "5-self-invocation": { "beanIsProxied": true, "result": "outer -> inner", "innerAdvisedWhenCalledFromOuter": false, "innerAdvisedWhenCalledDirectly": true }, "6-created-with-new": { "isProxy": false, "adviceFired": false }, "4-final-method": { "beanIsProxied": true, "proxyKind": "CGLIB subclass", "adviceFired": false }, "1-aspect-without-component-fired": false, "2-pointcut-typo-fired": false, "3-private-method-fired": false, "note": "every value above should be false except the two that prove the method is advisable when reached through the proxy" } Reading it: 1 @Aspect without @Component - the class is never instantiated, so the pointcut is never registered. No warning is produced. 2 pointcut typo - 'com.ankurm.aop.services' (plural) parses fine and matches nothing. An empty match set is not an error. 3 private method - cannot be overridden, so cannot be intercepted. 4 final method - CGLIB subclasses; a final method is inherited, not overridden. Note beanIsProxied is still true. 5 self-invocation - innerAdvisedWhenCalledFromOuter is false and innerAdvisedWhenCalledDirectly is true. Same method, same advice: only the call path differs. 6 created with new - no container, no proxy, no advice.