论坛首页 Java企业应用论坛

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

浏览 2245 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-17   最后修改:2009-04-17

    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时: 写道

<bean id="dataSource "
class="com.mchange.v2.c3p0.ComboPooledDataSource "
destroy-method="close" p:driverClass="${jdbc.driverClass}"
p:jdbcUrl="${jdbc.jdbcUrl}" p:user="${jdbc.user}"
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 "
class="org.springframework.jdbc.datasource.DataSourceTransactionManager "
p:dataSource-ref="dataSource " />

<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");
}

}
 

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics