Closing non transactional SqlSession导致spring事务不生效

Closing non transactional SqlSession导致spring事务不生效

写了一个简单的事务,头疼了半天事务一直不会回滚,最后定位到错误Closing non transactional SqlSession,又百度半天,最后一个大神解决了我的困惑 。。。。。就是配置文件的问题!!!!!!!!!!!!!!!!

1.在applicationContext.xml中配置不扫描controller注解:

<context:component-scan base-package="com.lang">
        <!--配置哪些注解不扫描-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

2.在applicationContext-mvc.xml中配置只扫描controller注解:

<!--开启注解扫描,只扫描Controller注解-->
    <context:component-scan base-package="com.lang">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

问题就出现在这!!!!这个 include-filter好像TMD不生效,子容器把带事务增强的父容器覆盖了!!!!!
so!!!!!!我是这么处理的,applicationContext-mvc.xml中就这么扫:

<!--开启注解扫描,只扫描Controller注解-->
    <context:component-scan base-package="com.lang.controller"/>

applicationContext.xml中就这么扫:

<!--开启注解的扫描,希望处理service和dao,controller不需要Spring框架去处理-->
    <context:component-scan base-package="com.lang.service"/>

各扫各的包,不要用什么排除包含标签,真的坑啊!!!!!!!!!!
原文链接添加链接描述

就算使用了use-default-filters=“false”,还会有404的问题,反正别用排除包含标签
————————————————
版权声明:本文为CSDN博主「Mr_lyh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mr_lyh/article/details/94473114

你可能感兴趣的:(Closing non transactional SqlSession导致spring事务不生效)