Also worth adding to this thread, the bahaviour of proxy on the application context is slightly different depending whether it's an interface based proxy or class based (CGLIB) proxy. Something to be aware of.
This is nicely demonstrated on this SpringDeveloper conference talk taking Spring security as an example: https://www.youtube.com/watch?v=9eoi1TViceM&ab_channel=SpringDeveloper