spring mybatis mysql 事务不起作用

时间:2021-03-07 05:11:18

之前框架事务应该是好的,不过这次做了些修改,不知如何竟然不好用了,整理了好半天,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>