我想知道在使用@Transactional
註解方法時實際發生了什麼? 當然,我知道Spring將在事務中包裝該方法。春天 - @Transactional - 在後臺發生了什麼?
不過,我有以下幾點疑惑:
- 聽說春天創建代理類?有人可以解釋這更多深度。 實際上駐留在該代理類中的是什麼?實際課堂會發生什麼?我怎麼能看到Spring的創建代理的類
- 我也看了在春天的文檔是:
注:由於這種機制是基於代理,只有「外部」方法調用通過進來代理將被攔截。這意味着即使被調用的方法被標記爲
@Transactional
,「自調用」(即調用目標對象的某個其他方法的目標對象內的方法)也不會導致實際的事務處理。
來源:http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html
爲什麼只有外部方法調用將是下交易,而不是自我調用的方法呢?
相關討論在這裏:http://stackoverflow.com/questions/3120143/where-should-i-put-transactional-annotation-at-an-interface-definition-or-at-an/3120323#3120323 – 2010-09-26 20:07:30