Spring事物-基于AOP切面实现

Spring事物的实现方式主要分两种,

一:编程式事物,这种实现方式硬编码的形式来实现的,spring框架本身不推荐这种方式,除非逼不得已才用这种事物 ;

二:声明式事物,这是spring推荐的事物实现方式,基于声明式的事物,又分为了两种,

        A:基于Spring xml配置的,在xml配置文件中配置一个事物管理器,在开启事物管理,然后就可以在需要使用事物管理的method使用@Transactional注解,则该方法体就是启用了事物管理,这在笔者之前的一遍博客有详细提到,

可以查看地址:https://blog.csdn.net/LLF_1241352445/article/details/79831031

        B:第二种就是本文章要讲的,基于AOP切面实现的事物管理,对AOP的基本概念推荐读者查看其它博客文章,如果对于AOP的实现方式有兴趣的,可以查看笔者的文章:https://blog.csdn.net/LLF_1241352445/article/details/83718065

       进入今天的主题,基于AOP的事物管理实现。

       既然是基于AOP的,那很明显就是指定切面下的范围都会被事物管理,而且,也会使用同一套的事物配置,比如事物隔离级别,传播属性等;这样就不用像基于spring xml配置的事物一样,在方法使用事物注解,可以说侵入性比较低,这应该是AOP事物的一个特性吧。同样的,AOP事物也需要初始化一个事物管理器,配置如下:

 

       事物管理器连接着数据源,所以就是对指定的数据源起到作用;

       其次,需要配置事物的通知,就是事物的隔离属性,传播属性等配置,如下:

//表示save开头的方法都会加入事务管理

       其中,method表示要事物代理的地方,* 表示所有方法,save*表示save开头的所有方法,其他用发类似;

      最后就是配置AOP切面了,配置如下:

//切入范围为service下的所有类的所有方法

    上面配置完成后,事物管理就已经配置完成了;可以启动项目验证事物是否生效;
 

 

 

 

你可能感兴趣的:(spring)