spring管理事务声明式事务和编程式事务

来源:互联网 发布:windows打补丁软件 编辑:程序博客网 时间:2024/04/28 17:41

事务:

      它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操 作过程中机器突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全没有使用过取款机一样,以保证用户和银行的利益都不受损失。

       原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分 
  一致性:在事务处理执行之前和之后,数据是一致的。 
  隔离性:一个事务处理对另一个事务处理没有影响。 
  持续性:当事务处理成功执行到结束的时候,其效果在数据库中被永久纪录下来。

编程式事务:

     在 Spring 出现以前,编程式事务管理对基于 POJO 的应用来说是唯一选择。用过 hibernate 的人都知道,我们需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法,这就是编程式事务管理。

比如:


声明式事务:

基于spring+Hibernate


HibernateTransactionManager把sessionFactory交个spring管理,JpaTransactionManager把EntityManagerFactory交给spring管理,他们的核心是aop(通过反射的方式进行动态代理)
基于spring+jpa




0 0