spring对事务进行管理

事务:在计算机中 ,一般是指对数据库进行的一系列操作

 它有四个特性:1:原子性:指事务包含的所有操作,要么全部执行,要么全都不执行

  2:持久性:事务一旦没提交了 ,他对数据库数据产生的影响是永久的

  3:一致性:事务执行前后 都得处于一直状态,就好比转账   两边的钱加起来要相等

  4:隔离性:当多个用户并发访问数据库时,比如操作同一张表,数据库为每一个用户开启一                                                          个事务,

      不能被其它事务所干扰,多个并发事务之间要相互隔离,即对于任意两个事务t1                                                                和t2,在事务t1看来  ,t2要么在t1开始之前就结束了,要么在t1结束之后再开始


             spring对事务进行管理:一般有两种方式,一种是编码式的 (可以用springAOP实现),一种是声明式的, 而声明式的又分为两种,一种是基于注解的,一种是基于配置文件的,我们这里就讲解一下啊声明式的 

基于注解的方式:在spring配置文件里边配置:

            

  <tx:annotation-driven />//声明注解起作用了
   <bean id="transactionManager"
   class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dataSource" />//数据源的配置  
   </bean>
                 然后在方法上或者类上就可以使用@transactional注解了,这个注解有很多属性

比如:name:用于指定用的那个transactionManage,

  isolation:事务的隔离度

  propagation:事务的传播 默认值为REQUIRED

  rollback-for:用于指定那些异常要发生回滚

       

注意:如果一个方法没有声明他是事务管理的  那么他调用事务管理的方法 ,事务管理的方法也不会对事务进行管理的.

基于配置文件的(通过aop)

<!-- 事物切面配置 -->  
<tx:advice id="advice" transaction-manager="transactionManager">  
    <tx:attributes>  
        <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
        <tx:method name="insert" propagation="REQUIRED" read-only="false"/>  
    </tx:attributes>  
</tx:advice>  
  
<aop:config>  
    <aop:pointcut id="testService" expression="execution (* com.baobao.service.MyBatisService.*(..))"/>  
    <aop:advisor advice-ref="advice" pointcut-ref="testService"/>  
</aop:config>  



                                            


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值