Spring+SpringMVC架构中,事物不起作用,解决方式如下:
1、把spring mvc和spring配置文件里的组件扫描分开配置,分割扫描边界
①spring配置:
<context:component-scan base-package="org.aaa.bbbb">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
②SpringMVC配置:
<context:component-scan base-package="org.aaa.bbb" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
2、Spring 事务不回滚的问题关键是:不能对该异常用try...catch处理,否则不会回滚事务!或是在catch中抛异常 }catch(Exception e){
throw new RuntimeException();
}
3、检查mysql数据库操作的表是否为Innodb引擎,因MyISAM引擎不支持事物,mysql下必须为InnoDB。
参考文章:http://m.xuehuile.com/blog/db8420a6eeee4d44a4ca9d29e016a52d.html