I want to know what actually happens when you annotate a method with
Of course, I know that Spring will wrap that method in a Transaction.
But, I have the following doubts:
- I heard that Spring creates a proxy class? Can someone explain this in more depth. What actually resides in that proxy class? What happens to the actual class? And how can I see Spring's created proxied class
- I also read in Spring docs that:
Note: Since this mechanism is based on proxies, only 'external' method calls coming in through the proxy will be intercepted. This means that 'self-invocation', i.e. a method within the target object calling some other method of the target object, won't lead to an actual transaction at runtime even if the invoked method is marked with
Why only external method calls will be under Transaction and not the self-invocation methods?