我是小白一枚,之前事务没学好,所以做项目的时候没怎么好好研究,现在项目快做完了,要把事务加进去,却老是不起效果,后来终于配(抄)好了,总结几点我事务配置失败的原因:
1.@Transactional在使用这个注解的时候,我就是直接在类上面加上这个注解,后来发现还少了一点东西 应该这样写@Transactional(rollbackFor = Exception.class)
2.<context:component-scan base-package="com.service" />
注解扫描component-scan放错了地方,之前是放在spring-mvc里面,后来看到别人的博客说是要放在spring-mybatis里面,于是我就放过去,可是还是没用 后来发现,原来是spring-mvc里面还有一个注解扫描component-scan,然后把这个删了,注解完美生效
下面是基本使用的代码
spring-mybatis:
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<context:component-scan base-package="com.service" />
<!-- 注解方式配置事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
serviceImpl:
@Service
@Transactional(rollbackFor = Exception.class)
public class TestServiceImpl implements ITestService {
@Override
public void del(int id) throws Exception {
address.delete(aid);
int i=1/0;
}
}