场景重现 |
在进行插入操作时,整个方法没有执行完毕,但是已经对数据库进行了插入操作。这样可能造成的结果是:
1.方法结尾处有错,对数据库进行了无用数据插入。
2.数据内容插入不完整。
注解式事务引用 |
<!-- 事务管理器配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 开启事务控制的注解支持 -->
<tx:annotation-driven transaction-manager="transactionManager" />
之后再所有需要用到注解式事务的方法上加上@Transactional这个注释,功能完成。
缺陷 |
这种事务处理方式有非常大的局限性。
1。如果一个线程中有多个不同的事务很难处理
2。方法一旦被注解为事务,只要在一个线程中执行都会被当作事务处理,这不利于积木式编程,因为同样一个方法是否参与事务是和调用者相关,而不是线程相关的