spring,springmvc,hibernate整合事务不起作用

时间:2021-02-19 21:43:21

刚学习完这三大框架,跟着别人的博客整合一下,就测试一下事务是否起作用,用的1/0来测试,用的@Transactional注解在service层,发现事务始终不起作用,也在网上查了一些资料,发现spring,springmvc配置文件中扫描包冲突了,因为我的是在web.xml中先加载spring的配置文件,然后加载springmvc的配置文件(两个都是扫描全部的包),看别人的博客说后者的扫描覆盖了前者,而springmvc没有配置事务管理器,所以导致事务不起作用.附上配置文件

spring的配置文件

<!-- 开启自动扫描的包 -->
<context:component-scan base-package="com">
<!-- 不扫描控制器 -->
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

springmvc配置文件

<context:component-scan base-package="com" use-default-filters="false">
    <!-- 只扫描带有controller注解的控制器 -->
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 
   </context:component-scan>

注意springmvc配置文件要用 use-default-filters="false",因为use-default-filters的值默认是true,也就是扫描全部的带有@Controller、@Service等注解的包了,加上之后则只扫描controller.