Spring的事务管理器

说明:

1、在AbstractFlatformTransactionManager中commit方法中
(1)如果有异常要回滚,使用processRollback()方法;具体处理回滚的信息要交给具体的事务管理器

HibernateTransactionManager
DataSourceTransactionManager
JdoTransactionManager

(2)如果没有异常则提交,使用processCommit()方法;具体处理提交的信息要交给具体的事务管理器

HibernateTransactionManager
DataSourceTransactionManager
JdoTransactionManager

2、在AbstractFlatformTransactionManager中的doGetTransaction方法是一个抽象方法,具体的事务管理器实现该方法得到具体的事务对象

public class PersonService{
    private PlatformTransactionManager platformTransactionManager;
    private SessionFactory sessionFactory;

    //setter方法
    public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager){
        this.platformTransactionManager=platformTransactionManager;
    }
    public void xxx(){
        //得到事务
        // 事务回滚
        //事务提交
    }
}

spring在调用具体的事务管理器之前做了一些准备工作,提前设置了事务的读写策略,而这些事务策略是公共的东西,是写在spring的配置文件中的,而这些内容的处理需要放在抽象类中去做

你可能感兴趣的:(Spring的事务管理器)