說明:
1示辈、在AbstractFlatformTransactionManager中commit方法中
(1)如果有異常要回滾寥茫,使用processRollback()方法;具體處理回滾的信息要交給具體的事務管理器
HibernateTransactionManager
DataSourceTransactionManager
JdoTransactionManager
(2)如果沒有異常則提交顽耳,使用processCommit()方法坠敷;具體處理提交的信息要交給具體的事務管理器
HibernateTransactionManager
DataSourceTransactionManager
JdoTransactionManager
2、在AbstractFlatformTransactionManager中的doGetTransaction方法是一個抽象方法射富,具體的事務管理器實現(xiàn)該方法得到具體的事務對象
public class PersonService{
private PlatformTransactionManager platformTransactionManager;
private SessionFactory sessionFactory;
//setter方法
public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager){
this.platformTransactionManager=platformTransactionManager;
}
public void xxx(){
//得到事務
// 事務回滾
//事務提交
}
}
spring在調(diào)用具體的事務管理器之前做了一些準備工作膝迎,提前設(shè)置了事務的讀寫策略,而這些事務策略是公共的東西胰耗,是寫在spring的配置文件中的限次,而這些內(nèi)容的處理需要放在抽象類中去做