spring boot 事务管理,使用事务的回滚机制
1:配置事务管理
在springboot 启动类中添加
@EnableTransactionManagement //开启事务管理
@EnableAsync(proxyTargetClass=true) //配置代理为cglib代理,默认使用 的是jdk动态代理
2:配置管理器
package com.li; import javax.sql.DataSource; @EnableAutoConfiguration
@SpringBootApplication
@MapperScan("com.li.dao")
@EnableTransactionManagement
@EnableAsync(proxyTargetClass=true)
public class SpringBootLabApplication {
public static void main(String[] args){
SpringApplication.run(SpringBootLabApplication.class, args);
} // 创建事务管理器1
@Bean(name = "txManager1") //给事务管理器命名
public PlatformTransactionManager txManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
} }
3:在@Service类的方法上添加 @Transactional(value="事务名")
@Transactional(value="txManager1")
@Override
public boolean insert(InsertParameter parameter) throws Exception { //如果想让两条插入语句共同执行,异常一定要抛出
int i1=manageMapper.insertNewsList(parameter);;
int i2=manageMapper.insertNews(parameter); if (i1!=i2 || i1!=1) {
return false;
}
return true;
}
4:ok