spring中的aop事务

事务

1、事务的特性:(ACID)。
2、事务并发问题:(脏读、不可重复读、幻读)。
3、事务的隔离级别:(1:读未提交2:读已提交4:可重复读8:串行化)

spring事务

spring封装了事务的管理代码

事务操作:

1、打开事务
2、提交事务
3、回滚事务

事务操作对象:

因为在不同平台,操作事务的代码各不相同,spring提供了一个接口

PlatformTransactionManager接口(重要):

1、JDBC平台:DataSourceTransactionManager
2、Hibernate平台:HibernateTransactionManager

spring管理事务的属性介绍:

1、事务的隔离级别(1:读未提交2:读已提交4:可重复读8:串行化)
2、是否只读(true只读、false可操作)
3、事务的传播行为(决定业务方法之间调用,事务应该如何处理)
PROPAGION_XXX :事务的传播行为

  • 保证同一个事务中
    PROPAGATION_REQUIRED 支持当前事务,如果不存在 就新建一个(默认)
    PROPAGATION_SUPPORTS 支持当前事务,如果不存在,就不使用事务
    PROPAGATION_MANDATORY 支持当前事务,如果不存在,抛出异常

  • 保证没有在同一个事务中
    PROPAGATION_REQUIRES_NEW 如果有事务存在,挂起当前事务,创建一个新的事务
    PROPAGATION_NOT_SUPPORTED 以非事务方式运行,如果有事务存在,挂起当前事务
    PROPAGATION_NEVER 以非事务方式运行,如果有事务存在,抛出异常
    PROPAGATION_NESTED 如果当前事务存在,则嵌套事务执行

spring管理事务方式

方式一:编码式【了解】
方式二:xml配置(aop)【重要】
1、导包(aop、aspect、aop联盟、weaving织入包)
2、导入新的约束


域名空间.png

beans:最基本的
context:读取properties文件
aop:配置aop
tx:配置事务通知
3、配置通知



    
        
    



    
    
    

//扩展

        
        
        
        
        
        
        

方式三:注解配置(aop)【重要】
1、导包(aop、aspect、aop联盟、weaving织入包)
2、导入新的约束
3、开启注解管理事务



4、使用注解

//可以在类上加或者方法上
@Transactional(isolation=Isolation.REPEATABLE_READ,propagation=Propagation.REQUIRED,readOnly=false)
public void transfer(final Integer form,final Integer to,final Double money) {}
        

你可能感兴趣的:(spring中的aop事务)