之前框架事务应该是好的,不过这次做了些修改,不知如何竟然不好用了,整理了好半天,java框架配置就是吓人,有一点不熟悉的就可能暴露问题,好处是又深入的了解了配置原理。
开始以为是mysql不支持事务的原因,但是表已经是innodb了,而且调整了全局自动提交还是不行,有说是@Transactional注解应该在public之类的问题,但是都正常。后来不死心,好好研究了下配置文件,发现是扫描的事情。正确配置应如下,否则mvc的bean替换了全局spring的注解,会导致事务失效。具体就不聊了,可以看下源码。
SpringMVC:
1 <!-- 配置自动扫描的包 --> 2 <context:component-scan base-package="com.mybatis.ssm" use-default-filters="false"> 3 <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 4 </context:component-scan>
Spring:
1 <!-- 配置自动扫描的包 --> 2 <context:component-scan base-package="com.mybatis.ssm" use-default-filters="true"> 3 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 4 </context:component-scan>