重复扫描会导致Spring的事务失效,事务是在Spring.xml中配置,而后spring-mvc.xml又扫描了一遍service,
导致原来service的代理类失效,从而事务拦截就失效。
解决办法:spring.xml不扫描Controller
<context:component-scan base-package="cn.xhx">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
spring-mvc.xml不扫描service和repository
<!-- 扫描所有的controller但不扫描service -->
<context:component-scan base-package="cn.xhx">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
当然也可以精确的指定要扫描的包