<context:component-scan base-package="com.lxl" />
这个扫描组件默认会扫描@Component,@Service,@Repository,@Controller注解,也就是说,你的业务层和持久层的bean被扫描了两次,因为你两个xml文件中都有这个配置。而Controller层的bean要比业务层和持久层的bean晚加载,所以会覆盖它们,而你在控制层中又没有事务配置(也就是dispatcher-servlet.xml文件中没有事务控制),所以可能导致事务不起作用。如果是上面这个问题,那么:dispatcher-servlet.xml这么配置,只扫描@Controller注解:
<!-- controller扫描设置 -->
<context:component-scan base-package="com.lxl" use-default filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
applicationController这么配置,不扫描@Controller主键:
<context:component-scan base-package="com.lxl">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>