spring支持编程式事物和声明式事物管理两种方式:
编程式事物:使用transactionTemplate实现
声明式事物:建立在AOP之上的。其本质是通过AOP功能,对方法前后进行拦截,将事物处理的功能编织到拦截到方法中,也就是目标方法开始之前加入一个事物,在执行完目标方法之后根据情况提交或者回滚事物。
当多个spring事物存在的时候,spring定义了下面7个传播行为来处理这些事物行为:
propagation_required:如果当前没有事物,就创建一个新事物,如果当前存在事物,就加入该事物,是最常用的设置。