Spring事务 <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 这个的值是数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 如果事务管理id是transactionManager 这里的transactionmanager可以不写---> <tx:annotation-driven transaction-manager="transactionManager"/>
/** * 事务属性: * 1. propagation 事务的传播行为 . 一个事务方法被另外一个事务方法调用时, 当前的事务方法怎么使用事务. * Propagation.REQUIRED 默认值. 使用调用者的事务 * Propagation.REQUIRES_NEW 将调用者的事务挂起,重新开启新的事务来使用。 * 2. isolation: 事务的隔离级别. 常用的是Isolation.READ_COMMITTED. * * 3. 默认情况下Spring会为所有的运行时异常进行回滚. * noRollbackFor * noRollbackForClassName * rollbackFor * rollbackForClassName * 4. readOnly :设置是否为只读事务. * true: 只读事务 如果事务真的只是读取数据,则有必要设置为只读事务. 帮助数据库引擎优化事务. * false:非只读事务. * 5.timeout: 超时属性。 设置事务在强制回滚之前可占用的时间. 避免一个事务对连接占用过长的时间. * */
@Transactional(propagation=Propagation.REQUIRES_NEW,isolation=Isolation.READ_COMMITTED,readOnly=false, timeout=3) public void buyBook(String username, Double isbn) { bookShopDao.updateUserAccount(username, price); }
Spring 基于注解方式声明式事务
最新推荐文章于 2023-09-01 14:05:29 发布