声明式

都知道的spring事务那点事(声明式,编程式)

纵饮孤独 提交于 2019-12-01 14:19:51
为什么用Spring来进行事务控制? 如果要手动进行控制事务的话,对于JDBC,service层需要Connection;对于Hibernate,serivice层需要Session。若一个项目要实现JDBC和Hibernate或其他的互换,我们要做Service层修改很多东西;而且对于Service层来说,他应该关心的不应该是这些,而是业务逻辑。因此,首先手动控制不能实现组件的替换,其次这些API也不应该出现在service层,但是Spring的IOC很好的解决了这样的问题。 一 .spring 事物简介: 1.spring 事务分为编程式事务管理,声明式事务管理两大类,其中声明式事物有细分 三种方式 ,两种常用的方式,一种是基于 tx 和 aop 名字空间的 xml 配置文件,另一种就是基于 @Transactional 注解。 2. 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 3. 声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务