美文网首页
Spring从入门到放弃N

Spring从入门到放弃N

作者: 凌峰 | 来源:发表于2016-07-10 12:06 被阅读207次

    Transaction(事务)

    不知道诸位有没有发现一个问题,很多的术语是在被翻译之后才变得晦涩难懂的。Transaction的字面意思是交易,本质属性就是一手交钱一手交货。

    举个简单的例子,如果我们去ATM取钱,我们在ATM取了多少钱必须要立刻反馈到银行,银行要立刻更新我们的账户余额,并及时反馈给ATM机。假如在这个流程中银行没有考虑数据的一致性和同步性,就可能会出现取钱成功但是账户没有扣款,或是存钱成功但是账户没有进账。

    Transaction的作用和并发操作中数据的线程安全是一样的,都是确保在经过一系列的操作之后数据在系统任何位置都保持一致。对于数据敏感型的应用,transaction是很重要的一个环节。

    在Spring中实现transaction很简单。我们只需要完成以下两个步骤:

    1. 在需要进行transaction的方法上添加注释
    @Transactional
    public class TransactionClass{
            public Object getObject(String name);
    }
    

    @Transactional的注释会默认将类中所有public的方法添加transaction属性。我们可以对@Transactional的属性进行设置

    1. 在spring配置xml中添加
    <tx:annotation-driven transaction-manager="txManager'/>
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
            <property name="dataSource" ref="dataSource"/>  
      </bean>  
    

    DataSourceTransactionManager是Spring jdbc中一个默认Transaction管理器,它可以通过<tx:annotation-driven>的配置找到所有的@Transactional注解进行管理。

    相关文章

      网友评论

          本文标题:Spring从入门到放弃N

          本文链接:https://www.haomeiwen.com/subject/ckjdjttx.html