详细的描述了Spring中的事务概念。

事务的简介

事务作用:在数据层保障一系列的数据库操作同成功同失败
Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败

如何开启事务管理?

步骤如下:

  1. 在业务层接口上添加Spring事务管理
public interface xxxxx {
@Transactional
public void xxx {
代码体
}
}

注意事项
Spring注解式事务通常添加在业务层接口中而不会添加到业务层实现类中,降低耦合
注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务

  1. 设置事务管理器
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager ptm = new DataSourceTransactionManager();
ptm.setDataSource(dataSource);
return ptm;
}
  1. 在主配置类中开启事务型驱动

    添加如下注解:

@EnableTransactionmanagement

Spring事务角色

事务角色

事务管理员

发起事务方,在Spring中通常指代业务层开启事务的方法

事务协调员

加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法

事务属性

属性 作用 实例
readOnly 设置是否为只读事务 readOnly = true 只读事务
timeout 设置事务的超过时间 timeout = -1 永不超时
rollbackFor 设置事务回滚异常(class) rollbackFor = (NullPointException.class)
rollbackForClassName 设置事务回滚异常(String) 同上格式为字符串
noRollbackFor 设置事务不回滚异常(class) noRollbackFor = (NullPointException.class)
noRollbackForClassName 设置事务不回滚异常(String) 同上格式为字符串
propagation 设置事务传播行为

事务传播行为:事务协调员对事务管理员所携带事务的处理态度

SSM05-01事务传播行为