day03-spring与数据库操作的框架解析即dataSource的获取(JDBC)、使用spring中已经有的事务进行JDBC操作(二)
2014-11-23 23:26:19
·
作者:
·
浏览: 3
tract class AbstractPlatformTransactionManager implements PlatformTransactionManager{
//获取事务
public final TransactionStatus
getTransaction(TransactionDefinition definition)
throws TransactionException {
//抽象方法
Object transaction = doGetTransaction();
}
//将来谁继承该抽象类,谁实现该方法
protected abstract Object doGetTransaction() throws TransactionException;
public final void commit(TransactionStatus status) throws TransactionException {
}
public final void rollback(TransactionStatus status) throws TransactionException {
}
}
3、实现类
DataSourceTransactionManager
HibernateTransactionManager
JdoTransactionManager
...
案例分析:
public class PersonDao{
private PlatformTransactionManager platformTransactionManager;
public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager){
this.platformTransactionManager = PlatformTransactionManager;
}
}
spring的声明式事务处理
这时spring容器是一个切面。
注意:要使用spring的事务管理来管理程序中的事务,就要遵守spring的规范(有一个接口、一个抽象类、三个实现类(JDBC、hibernate、))。
在使用spring的事务管理时,不需要写切面类,spring已经实现了,不需要关心。程序员只要写crud操作就行和声明事务。
事务管理器:你使用的是哪种技术,JDBC、hibernate,不管你是使用哪种技术,spring帮你实现完全的面向接口编程