Joh*_*nak 12 java spring transactions
我正在建立一个新的JPA + Spring项目.有什么区别(对于我作为程序员而言):
<tx:annotation-driven transaction-manager="transactionManager" />
Run Code Online (Sandbox Code Playgroud)
和
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />
Run Code Online (Sandbox Code Playgroud)
在我的applicationContext.xml中?
Ral*_*lph 28
Proxies和字节码weaven方面之间存在巨大差异.代理只能在调用来自"外部空间"时进行拦截,但如果调用来自对象本身则不会拦截(this.transactionMethod())
这意味着如果你有两个方法,T A类和B方法T有一个交易注解,以及方法B调用T的“this.T()",那么代理就决不会调用(对T),所以没有交易在这种情况下处理!
如果使用AspectJ,事务处理代码在字节代码中是weaven T,并且无论调用是来自对象本身还是来自其他对象,它都将被执行.