1 事务之HelloWorld
1)在applicationContext中配置事务管理器,及启用声明式事务
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource">
</bean>
<!-- 启用声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
2)在方法上添加事务注解
@Transactional(propagation= Propagation.REQUIRES_NEW)
public void batchUpdate(){}
2 事务的属性
1)事务的传播行为
@Transactional(propagation= Propagation.REQUIRES_NEW)
2)事务隔离级别
@Transactional(propagation= Propagation.REQUIRES_NEW,isolation= Isolation.READ_COMMITTED)
3)回滚事务属性
@Transactional(rollbackFor=IOException.class,noRollbackFor=SQLException.class)
4)只读事务属性和超时事务属性
只读事务属性:表示这个事务只读取数据但不更新数据, 这样可以帮助数据库引擎优化事务
超时事务属性:事务在强制回滚之前可以保持多久. 这样可以防止长期运行的事务占用资源.超时属性以秒为单位来计算
@Transactional(readOnly=true,timeout=30)