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

SpringMVC + Spring + MyBatis 学习笔记:SpringMVC和Spring一同工作的时候,AOP事务管理不起作用的解决方法

时间:2015-04-01 14:52:07      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

系统:WIN8.1

数据库:Oracle 11GR2

开发工具:MyEclipse 8.6

框架:Spring3.2.9、SpringMVC3.2.9、MyBatis3.2.8


SpringMVC 的 springmvc.xml文件中 配置扫描包,不要包含 service的注解,Spring 的 配置文件配置包扫描时,不要包含controller的注解,如下所示:

 

Spring MVC的配置文件:

<context:component-scan base-package="包路径">

  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>

</context:component-scan> 

 

Spring 的配置文件:

1 <context:component-scan base-package="包路径">           
2 
3  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
4 
5 </context:component-scan>

Spring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有@Service注解的类。

Why?

因为 springmvc.xml 与 applicationContext.xml 不是同时加载,如果不进行这样的设置,那么 Spring就会将所有带@Service注解的类都扫描到容器中,等到加载 applicationContext.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在 applicationContext 中的事务配置不起作用,发生异常时,无法对数据进行回滚。

 

SpringMVC + Spring + MyBatis 学习笔记:SpringMVC和Spring一同工作的时候,AOP事务管理不起作用的解决方法

标签:

原文地址:http://www.cnblogs.com/morlin/p/4383599.html

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