Spring AOP Proxies and aspectJ had some differences mainly:
- Spring AOP only works on public methods.
- Spring AOP does not work for self invocations.
You can have a look to sections 8.4 & 8.5 of Spring's Documentation for more information.
Currently you have two solutions:
- refactor your code to remove the need for self invocation
- use AspectJ rather than Spring AOP proxies either at compile time or load time.