读书人

spring学习札记之二:Spring对事务的支

发布时间: 2012-11-16 14:12:14 作者: rapoo

spring学习笔记之二:Spring对事务的支持

??  1spring对事务的管理提供了一致的编程模板,在高层次的建立了统一的事务抽象,也就是说,不管选择Spring Jdbc,Hibernate,Jpa还是ibatis? ,

都可以用统一的编程模型进行事务管理。这让用户可以抛开事务处理来编写程序。

  2下面是spring对事务管理器的实现类。

????????? A org.springframework.orm.jpa.JpaTransactionManager -----使用JPA时

    Borg.springframework.orm.hibernate3.HibernateTransactionManager------使用Hibernate3.0时

    Corg.springframework.orm.jdbc.datasource.DataSourceTransactionManager--JDBC或者ibatis等基于datasource数据源持久化技术时。

   这些事务管理器都是对特定事务实现的框架的代理,我门可以通过Spring提供的抽象对不同类型的事务采用相同的处理,而不必关系实现的细节。

?????? 3? 常见的事务管理器。

?? 在使用 jdbc,ibatis时: 写道

p:password="${jdbc.password}">
<property name="initialPoolSize"
value="5" />
<property name="maxPoolSize" value="10" />
</bean>

<!-- Transaction manager for a single JDBC DataSource (alternative to JTA) -->
<bean id="transactionManager"
/>
<tx:annotation-driven transaction-manager="transactionManager"/>

?

在幕后,DataSourceTransactionManager使用DataSource的Connection的Commit(),Rollback()等方法的管理事务。

? 4采用注解的方式配置申明式事务(@Transactional),用户可以直接在需要事务增强的业务类或业务方法中使用◎Transaction进行定义(注解不能被继承),代替XML的配置方式,

◎Transaction 写道
@Service
@Transactional

public class UserDaoManagerImpl extends IbatisDaoSupport implements UserDaoManager {

@Override
public List getUserLists() {

return null;
}

@Override
public void showMessage() {
List list=this.getSqlMapClientTemplate().queryForList("getSeq");
}

}
?

?

读书人网 >软件架构设计

热点推荐