Spring,SpringMVC父子容器配置事务管理问题

一 概述

在整合Spring和SpringMVC的时候,我们需要通过Spring的位置文件applicatonContext.xml对代码逻辑层事务管理进行配置,即对Service层方法进行AOP增强或事务管理配置。但是奇怪的是,当Controller层使用了Service层的方法的时候配置的事务会失效。

二 配置失效的原因

其实Spring容器同SpringMVC容器存在着父子容器关系,Spring作为父容器,SpringMVC作为子容器。父容器是不允许访问子容器的,而子容器却可以访问父容器。故在配置Spring容器时候应该过滤掉对Controller层的扫描,而SpringMVC的配置文件应该只扫描Controller层,这样避免了重复扫描Spring容器中配置的事务,从而避免配置的事务失效。

三 Spring,SpringMVC相关的配置信息

Spring->SpirngContext.xml

<context:component-scan base-package="com.zxz.platform" use-default-filters="true">
//扫描时过滤掉Controller层
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

或者扫描Service层的包

<context:component-scan base-package="com.zxz.platform.Service" use-default-filters="true">
</context:component-scan>S

SpringMCV->dispatcher-servlet.xml

//只扫描Controller,避免对Service层事务的重复扫描
<context:component-scan base-package="com.zxz.platform.Controller" use-default-filters="true">
</context:component-scan>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值