spring-tx是的对aop的继承与封装,旨在简化事务代码
流程:
-
配置文件开启spring事务管理器@EnableTransactionManagement
-
@Bean //引入TransactionManager,配置连接池 public TransactionManager transactionManager(DataSource dataSource){ DataSourceTransactionManager dataSourceTransactionManager= new DataSourceTransactionManager(); dataSourceTransactionManager.setDataSource(dataSource); return dataSourceTransactionManager; }
-
在所需方法或类中加入@Transactional,在接口加则该接口所有实现类都会加入事务,类加则类所有方法都会加上事务
@Transactional属性:readOnly指定只读模式,在数据库查询方法设置提高效率
timeOut设置事务超时,超时后自动结束事务
rollbackFor指定出现什么异常时事务回滚,默认出现运行时异常事务回滚,建议设置成 runTimeException的父类Exception
事务传播:propagation = Propagation.REQUIRED(默认),子方法与父方法同一事务,父方法没有方法则新建
propagation = Propagation.REQUIRES_NEW,父方法有无事务子方法都新建独立事务