天天看点

Spring事务管理之——开启事务

作者:我就是超能

事务是为保证数据的一致性,操作的原子性,开发语言所提供的一种能力。

事务的作用:保障一系列对数据的操作,要么同时成功,要么同时失败。

举个栗子:李四借张三1万元,张三账户转了1万给李四,张三的账户上1万扣款成功,这时网络中断,李四账户写入失败。如果没有事务管理,张三的账户上就少了1万,但是李四没有收到,张三的1万可能就打水漂了,银行就开心了[呲牙]。(实际银行转账业务远比这个要复杂)。所以事务的管理就非常重要。

Spring中如何启用事务呢?

  • 首先,在JDBC配置文件中,定义事务管理器Bean。
Spring事务管理之——开启事务
//设置事务管理器,作为bean
    @Bean
    public PlatformTransactionManager transactionManager(DataSource dataSource){
        DataSourceTransactionManager dsTransactionManager = new DataSourceTransactionManager();
        dsTransactionManager.setDataSource(dataSource);
        return dsTransactionManager;           
  • 其次,在Spring配置中,告诉Spring通过注解 @EnableTransactionManagement 开启事务。
Spring事务管理之——开启事务
  • 最后,在需要使用事务的接口层方法上,通过增加注解 @Transactional 来开启事务。
Spring事务管理之——开启事务

注意:

  1. Spring注解式事务一般添加到业务接口层方法上,而不直接增加到业务层实现类。
  2. 可以对接口层的具体方法开启事务,也可以直接在接口上增加注解,表示整个接口类的所有方法都开启事务。