码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC+Spring 事务无法回滚的问题

时间:2014-11-05 10:45:24      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   sp   strong   文件   div   

问题描述:

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 事务无法回滚的问题

标签:style   blog   io   color   os   sp   strong   文件   div   

原文地址:http://www.cnblogs.com/yrcn/p/4075563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!