好像一般学习事务都是使用银行转账来进行说明,这里的问题重点就是,假设A给B转账,两者的账户必须同时发生变化,不能只有一边的金额发生变化。那需要的共功能是什么,就是A转账之后,突然有问题了,那事务必须回滚,把钱还给A。感觉这一块spring做的还是非常简单的,只需要简单的配置,就算执行了A转钱的操作,都能够帮助A把钱转回来。
下面的样子是模拟转账途中发生了意外。需要解决的就是这个问题。感觉有点把他们捆在一起,当然事务就是这样,要么全部执行,要么都不执行。
下面是应用事务的方法。
步骤一① 粘贴复制进JdbcConfig
//配置事务管理器,mybatis使用的是jdbc事务
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);
return transactionManager;
}
步骤二② 开启注解式事务驱动
//开启注解式事务驱动
@EnableTransactionManagement
public class SpringConfig {
}
步骤③ 在需要的地方开启事务,写在接口上!
//配置当前接口方法具有事务
@Transactional
public void transfer(String out,String in ,Double money) ;