春天 - @Transactional - 背景中发生了什么?
我想知道当你用?当然,我知道Spring会将该方法包装在事务中。@Transactional
但是,我有以下疑问:
- 我听说Spring创建了一个代理类?有人可以更深入地解释这一点吗?该代理类中实际驻留的内容是什么?实际类会发生什么情况?我怎么能看到Spring创建的代理类
- 我还在春季文档中读到:
注意:由于此机制基于代理,因此只有通过代理传入的“外部”方法调用才会被拦截。这意味着“自调用”,即目标对象中的方法调用目标对象的其他方法,即使调用的方法被标记为
@Transactional
,也不会在运行时导致实际的事务!
资料来源:http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html
为什么只有外部方法调用将位于事务下,而不是自调用方法?