Spring从入门到放弃N

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 Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 这部分的参考文档涉及数据访问和数据访问层和业务或服务层之间的交互。 Spring的综合事务管理支持覆盖很多细节,然...
    竹天亮阅读 1,048评论 0 0
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,934评论 6 342
  • Spring简介: Spring是一个IOC(DI)和AOP容器框架: 轻量级:Spring是非侵入性的,基于开发...
    JHMichael阅读 622评论 0 3
  • Spring事务_事务的使用_05 编程式事务 在一般使用过程中一般不需要手动编程式实现事务管理,不过Spring...
    老猫头阅读 1,023评论 0 0