Spring事务简介

Spring事务简介

1.在jdbcConfig配置文件中配一个事务管理器,在这个事务管理器然后new一个基于jdbc实现的spring实现类 DataSourceTransactionManager

@Value(“${jdbc.driver}”)
private String driver;

@Value("${jdbc.url}")
private String url;

@Value("${jdbc.username}")
private String username;

@Value("${jdbc.password}")
private String password;


//1.定义一个方法获取要管理的对象
//2.添加@Bean,表示当前方法的返回值是一个bean
@Bean
public DataSource dataSource(){

    DruidDataSource ds=new DruidDataSource();
    ds.setDriverClassName(driver);
    ds.setUrl(url);
    ds.setUsername(username);
    ds.setPassword(password);
    return ds;
}

//定义事务管理器给spring管理
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){//加载外部资源,通过相同的dataSource进行事务管理
    DataSourceTransactionManager transactionManager=new DataSourceTransactionManager();//这个式jdbc的事务
    transactionManager.setDataSource(dataSource);
    return transactionManager;
}

2.在业务层接口 加上@Transactional注解开启事务,则里面的方法同成功,或者同失败,其原理为把业务层接口的事务与dao层的种种事务进行绑定,作为一个事务,只要这个业务层的事务发生异常,则所有的事务都会回滚,但只有内存溢出和运行时异常才会回滚,如果遇到IOExcption异常事务不会回滚,则要改@Transactional(rolbackFor=IOException.class),则如果发生IOException异常事务也会回滚

3.在springConfig上加上注解@EnableTransactionManagement 让配置类识别注解事务

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

事务管理员:例service
事务协调员:例dao

@Transactional(propagation=Propagation.REQUIRES_NEW)用来设置事务的传播行为,@Transactional(propagation=Propagation.REQUIRES_NEW)这个加在不受其他事务影响的接口上,自己玩自己的。如果只是加了@Transactional,默认情况下加入事务管理员,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值