I'm pretty confused by this topic and see very little advice in the Spring 4.x documentation. First off let me state that I can configure my project any way I want. Static weaving, compile time weaving, none, etc.
I just want the optimal performance. But if the performance differences are microseconds then I just want simplest. I only care about a performance difference that would impact my customers.
Okay, so here are the relevant options:
- adviceMode=proxy, proxyTargetClass=true
- adviceMode=proxy, proxyTargetClass=false
- adviceMode=aspectJ, compile-time weaving
- adviceMode=aspectJ, load-time weaving
I'm okay with adding some time to my application initialization as long as it is fast while running.
So what are the trade offs between these four ways of configuring transaction management?
Are there feature trade-offs too or is this just a performance issue?
Note that I am using Spring 4.0.2 and Java 1.7. If there is Spring 4.0 documentation that basically answers this question then I apologize and just redirect me to the doc. So far I've seen documentation saying how to set them up but not how they compare. Thanks!
Also note that most of the information on the web about this is really out of date. So I'm looking for current comparisons.