spring 支持编程式事务管理和声明式事务管理两种方式。
编程式事务管理是使用Transaction Template 或者直接使用底层的Platform TransactionManager。对于编程式事务管理,
spring推荐使用Transaction Template。
声明式事务管理建立在AOP之上的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务 ,在执行
完目标方法之后根据执行情况提交或者回滚事务,声明式事务最大的有点就是不需要通过编程的方式管理事务,这样就不需要
业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过@Transactional注解的方式),就可以
将事务规则应用到业务逻辑中。
显然声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式,声明式事务管理使业务代码不受污染,
一个普通的Pojo对象 只要加上注解就可以获得完全的事务支持,和编程式事务相比不足的地方是 最细粒度只能作用到方法级别
无法做到像编程式事务那样可以作用到代码块级别。