内容摘要:Spring是java平台上的一个开源应用框架。它的第一个版本是由Rod Johnson写出来的。Rod在他的Expert One-On-One Java EE Design and Development(Java企业应用设计与开发的专家一对一)一书中首次发布了这个框架。该框架也可以移植到.NET的环境下。
在学习spring事务管理时,我忍不住要问,spring为什么进行事务管理,spring怎么进行的事务管理?
首先,为什么要进行事务,接下来说说spring是怎样进行事务管理的。
1、Spring事务策略
Spring事务策略,也就是spring事务管理的实现方式。它有一个统一的抽象是由实现下面这个接口完成的。
org.springframework.transaction.PlatformTransactionManager
此接口的内容如下:
Public interfacePlatformTransactionManager()...{
TransactionStatue getTransaction(TransactionDefinition definition) throws
TransactionException;
Void commit(TransactionStatus status) throws TransactionException;
Void rollback(TransactionStatus status) throws TransactionException;
}
不管是声明式的还是编程式的事务管理都需要此抽象来完成。
解释一下这个接口,这样可以更好的理解spring的事务控制的原理。
getTransaction()根据类型为TransactionDefinition的参数返回一个TransactionStatus对象。返回的TransactionStatus对象可能代表一个新的或已经存在的事务(如果在当前调用堆栈有一个符合条件的事务)。如同J2EE事务上下文,一个TransactionStatus也是和执行的线程关联的。
同时,在框架中还存在TransactionDefinition接口,即上边的参数类型。此接口指定了事务隔离程度、事务传播、事务超时、只读状态。
另外,还有TransactionStatus接口。这个接口为处理事务提供简单的控制事务执行和查询事务状态的方法。
2、两种事务管理方式:编程式、声明式。
Spring提供两种方式的编程式事务管理,分别是:使用TransactionTemplate和直接使用PlatformTransactionManager。
责编:豆豆技术应用