首页 > 代码库 > SpringMVC+Spring 事务无法回滚的问题
SpringMVC+Spring 事务无法回滚的问题
问题描述:
Controller里面执行Service的方法,Service方法抛出异常,但是没有按照事务配置的方式回滚;
Service的事务配置没有问题;
出现此问题的原因:
在springmvc-servlet.xml配置文件中没有过滤掉@Service,正确配置如下:
<!-- 自动扫描的包名 --> <context:component-scan base-package="com.yrcn.my"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository" /> </context:component-scan>
原因解析:
org.springframework.web.context.ContextLoaderListener会加载项目中的@Service;
如果你不在springmvc-servlet.xml过滤掉@Service,Spring容器中会有两套@Service bean;
我们可以通过debug的方式打印,你会发现Controller里面的Service bean和我们通过BeanFactory获取的bean居然不是同一个。
我们通过BeanFactory获取的Service Bean是可以正确回滚的。
SpringMVC+Spring 事务无法回滚的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。