Spring事务配置

基于注解的方式

1.配置事务管理器

<bean id="transaction"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>

2.启用事务注解
<tx:annotation-driven transaction-manager="transaction"/>
@Transactionl
3.事务的传播行为
@Transactionl添加propagation属性来指定事务的传播行为,共有七种指定方式
1. REQUIRED:默认值,在被调用的事务方法中运行。
2. REQUIRES_NEW:使用自己的事务,调用的事务方法的事务被挂起。
4.事务隔离级别
@Transactionl添加isolation属性来指定事务的隔离级别
5.其他属性
* noRollbackFor
指定事务对哪些异常不回滚,默认所有异常都回滚
* readOnly
指定事务是否为只读,表示这个事物只读取数据但不更新数据,这样可以帮助数据库引擎进行优化
* timeOut
指定事务强制回滚之前最多可占用的时间,单位秒


基于xml的方式

  1. 配置事务管理器
  2. 配置事务属性
  3. 配置事务切点,关联事务属性

最后,记录一下我踩过的一些坑
1. 当抛出的是Exception时事务没有回滚,而抛出RunTimeException就会回滚。详见http://blog.sina.com.cn/s/blog_6ac4c6cb01018pbl.html
2. tomcat一直起来不来,因为我是这样写的

private ApplicationContext ctx;
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

{
   ctx = new ClassPathXmlApplicationContext("spring-config.xml");
   namedParameterJdbcTemplate = ctx.getBean(NamedParameterJdbcTemplate.class);
}

去网上找了下原因是因为这个时候ApplicationContext还没初始化,然后改成这样就ok了

@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值