事务:在数据层保障一系列的数据库操作同成功同失败
使用:
在业务层接口上添加Spring事务管理,开启事务管理:
public interface AccountService {
@Transactional
public void transfer(String out,String in ,Double money);
}
注:注解式事务可以添加到业务方法上,也可以添加到接口上
设置事务管理器:
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager ptm = new DataSourceTransactionManager();
ptm.setDataSource(dataSource);
return ptm;
}
注:事务管理器要根据实现技术进行选择 MyBatis框架使用的是JDBC事务
开启注解式事务驱动:
@Configuration
@ComponentScan("com.xxx")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MybatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}
事务角色:
事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法
事务协调员:加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法
事务传播行为:事务协调员对事务管理员所携带事务的处理态度