之前框架事務應該是好的,不過這次做了些修改,不知如何竟然不好用了,整理了好半天,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>
