spring事务注解@Transactional

通过@Transactional注解方式,可以将事务放到响应的public方法中,实现事务管理。

一、属性

@Transactional的所有可选属性如下所示:

1.propagation

用于设置事务传播属性。该属性类型为Propagation枚举,默认值为Propagation.REQUIRED

2.isolation

用于设置事务的隔离级别。该属性类型为isolation枚举,默认值为Isolation.DEFAULT

3.readOnly

用于设置该方法对数据库的操作是否是只读的。该属性为boolean,默认值为false

4.timeout

用于设置本操作与数据库连接的超时时限。单位为秒,类型为int,默认值为-1,即没有时限。

5.rollbackFor

指定需要回滚的异常类。类型为Class[],默认值为空数组。当然,若只有一个异常类时,可以不适用数组。

6.rollbackForClassName

指定需要回滚的异常类类名。类型为String[],默认值为空数组。当然,若只有一个异常类时,可以不使用数组。

7.noRollbackFor

指定不需要回滚的异常类。类型为Class[],默认为空数组。当然,若只有一个异常类时,可以不适用数组。

二、使用步骤

1.声明事务管理器对象

<bean id="transactionManager" class="DataSourceTransactionManager">
<!--连接数据库,指定数据源-->
<property name="dataSource" ref="myDataSource"/>
</bean>

2.开启事务注解驱动,告诉spring框架,我要使用注解的方式管理事务

<!--transaction-manager:事务管理器对象的id-->
<tx:annotation-driven transaction-manager="transactionManager" />

3.使用事务

@Transactional
public void buy()
{
.......
}

原理等价于

@Around("业务功能的业务方法名称")
Object myAround(){
    try{
        buy();
        spring的事务管理.commit();
        }catch(Exception e)
    {
  spring的事务管理.rollback();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值