Spring事务管理原理

来源:互联网 发布:python impacket库 编辑:程序博客网 时间:2024/06/07 02:30

综述

简单的说主要是下面三个原理:
1. 使用aop在对应的方法前嵌入代码
2. 根据上下文的事务属性,确定是否要创建Entity Manager
3. 将entity manager绑定到当前线程,使用threadlocal
4. 将对应的数据库连接绑定到当前线程,使用threadlocal

总结

  1. 调用过程就是在上述4个条件下,调用完成后通过触发机制将对应threadlocal中的ntity manager通过连接写入到db中。其实老的EJB中的事务也是这么处理的,使用注解和xml配置都是一样的
  2. 对连接session的管理一般采用open session view的方法

相关资料:

http://www.importnew.com/12300.html
http://stackoverflow.com/questions/1079114/where-does-the-transactional-annotation-belong
http://stackoverflow.com/questions/1099025/spring-transactional-what-happens-in-background

1 0