Spring中的事物控制

spring的事务控制是基于AOP的,它可以使用编程的方式实现,也可以使用配置的方式实现,自己重点总结下使用配置方式实现.

在开发中,使用spring事务管理器的实现类,

真正管理事务的对象

org.springframework.jdbc.datasource.DataSourceTransactionManager使用Spring JDBCiBatis 进行持久化数据时使用

org.springframework.orm.hibernate3.HibernateTransactionManager 使用Hibernate版本进行持久化数据时使用


1.基于XML的声明式事务控制(直接上事物配置)

1.1第一步:配置一个事物管理器

<bean id="transactionManager"    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <!-- 注入DataSource -->

    <property name="dataSource"     ref="dataSource"></property>

</bean>

1.2第二步:配置事物通知引用事物管理器

<tx:advice id="txAdvice"    transaction-manager="transactionManager">

</tx:advice>

1.3第三步:配置事物的属性

<!--tx:advice标签内部配置事务的属性 -->

<tx:attributes>

<!-- 指定方法名称:是业务核心方法

    read-only:是否是只读事务。默认false,不只读。

    isolation:指定事务的隔离级别。默认值是使用数据库的默认隔离级别。

    propagation:指定事务的传播行为。

    timeout:指定超时时间。默认值为:-1。永不超时。

    rollback-for:用于指定一个异常,当执行产生该异常时,事务回滚。产生其他异常,事务不回滚。没有默认值,任何异常都回滚。

    no-rollback-for:用于指定一个异常,当产生该异常时,事务不回滚,产生其他异常时,事务回滚。没有默认值,任何异常都回滚。

    -->

    <tx:method name="*"     read-only="false"     propagation="REQUIRED"/>

    <tx:method name="find*"     read-only="true"    propagation="SUPPORTS"/>

</tx:attributes>

1.4配置事物AOP切入点表达式

<aop:config>

    <!-- 配置切入点表达式 -->

    <aop:pointcut expression="execution(* com.xxx.service.impl.*.*(..))" id="pt1"/>

</aop:config>

1.5第五步:配置切入点表达式和事物通知的对应关系

<!-- aop:config标签内部:建立事务的通知和切入点表达式的关系 -->

<aop:advisor advice-ref="txAdvice"pointcut-ref="pt1"/>



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值