Spring AOP应用之一:声明式事务


  Spring本身并不支持事务实现,同时只是负责提供标准接口,应用底层如何支持怎么样的事务,需要提供具体实现类。这也是策略模式在spring中的应用之一。这些具体的实现如何应用到业务中就需要Spring实现的AOP。

  在Spring框架中,也内置了一些具体策略,例如: DataSourceTransactionManager , HibernateTransactionManager 等。( spring-orm-5.XX.XX.RELEASE.jar 中)

  以DataSourceTransactionManager为例示例声明事务(本质就是使用aop将事务控制逻辑编织入到业务代码):

    1)依赖:

      

     2)配置:

      xml:

         

       如混合注解:

       注解:

        在接口、类或方法上添加@Transactional注解

         

   补充:事务往往在service层进?控制,如果出现service层?法A调?了另外?个service层?法BAB?法本身都已经被添加了事务控制,那么A调?B的时候,就需要进?事务的?些协商,这就叫做事务的传播?

    A调?B,我们站在B的?度来观察来定义事务的传播?为