虽然不简单但还是要学的JavaWeb—spring事务管理

spring 事物管理
什么是事务:事务就是逻辑上的一组操作,这组操作的各个执行单元,要么全部完成,要么全部失败,体现在代码中,可以将一次转账看作是一个事务。

事务的特性:
1.原子性
即组成事务的一组操作,要么全部执行,要么全部不执行,不能单独的进行某个操作。
2.一致性
即事务执行前后,数据库中的数据保持一致
3.隔离性
即事务之间相互隔离,如不能再一个事物写数据的时候另一个事务读数据
根据不同的隔离性,能出现的安全问题有

脏读:一个事务读到了另一个事务未提交的数据。
不可重复读:一个事务范围内多次的对一个数据进行读取,却读到了不同的数据值。
原因:该数据在读取的过程中被另一个事务修改并提交。
虚读(幻读):因两个事务或多个事务的操作,导致产生的结果不符合某事物的要求,(如,事务A更改某数据,事务B又改回来,事务A再次查询发现:我明明改了,为啥没变)

4.持久性
对于已提交的数据,即使系统损坏,或者数据库异常关闭,也不能影响其中的已更改的数据,也就是说,已提交的事物的更新,可以通过备份或者其他方式来找到,而不怕数据的丢失。

 /*
  * 2017/10/15更
  */

spring 事务管理的三大接口

1.PlatFormTransactionDefinition —— 平台事务管理器
根据Dao层框架不同,可以选择不同的实现类

2.TransactionDefinition —— 事务定义信息
定义事务的隔离级别
定义事务的传播行为
定义事务的超时信息
定义事务是否只读等

3.TransactionStatus —— 事务的具体运行状态

spring事务管理的两种方式

基础配置

1.配置dao层数据源(这里使用dataSourceTransactionManager)
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="" />
    <property name="url" value="" />
    <property name="username" value="" />
    <property name="password" value="" />
</bean>
2.配置平台事务管理器(TransactionManager)
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSouce" ref="dataSource">
</bean>

1.编程式的事务管理

//提供事务模板
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
     <property name="transactionManager" ref="transactionManager">
</bean>         

2.声明式的事务管理(重要)
1) 基于AspectJ的XML配置方式

<tx:advice id="myAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="outMoney" propagation="REQUIRED" />
    </tx:attributes>
</tx:advice> -->

<!-- 配置AOP -->
<!-- <aop:config>
<aop:advisor advice-ref="myAdvice"
        pointcut="execution(public * com.ruitaoad.*.outMoney(..))" />
</aop:config>

2)基于AspectJ的注解方式

  ①开启事务注解
  <tx:annotation-driven transaction-manager="transactionManager"/>
  ②在业务层(业务的java文件)上添加注解@Transactional

————————2017/10/16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值