spring mvc 给Controller添加事务不成功的原因
来源:互联网 发布:中海达rtk数据导出 编辑:程序博客网 时间:2024/06/10 22:43
转自:http://blog.csdn.net/u011580177/article/details/46840033
spring mvc 给Controller添加事务不成功的原因
扫描配置如下:
spring-context.xml
<context:component-scan base-package="com.freecg.green007">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
spring-mvc.xml
spring-mvc.xml
<context:component-scan base-package="com.freecg.green007">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
spring父容器不扫描@Controller,MVC子容器不扫描@Service.
事务配置如下:
spring-context.xml
因为spring容器和spring-mvc是父子容器,spring容器会先加载,如果此时扫描了Controller,但未扫描到Service。
spring事务配置文件还有上下文都是通过org.springframework.web.context.ContextLoaderListener加载的,而spring MVC的action是通过org.springframework.web.servlet.DispatcherServlet加载的 。
web是先启动ContextLoaderListener后启动DispatcherServlet 在ContextLoaderListener加载的时候action并没在容器中,所以现在使用AOP添加事务或者扫描注解都是无用的。
结论:让spring扫描注册Service实现类,让MVC扫描注册Controller,此时spring父容器已经注册Service为Bean,此时事务可以得到正常配置。
spring父容器不扫描@Controller,MVC子容器不扫描@Service.
事务配置如下:
spring-context.xml
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="false" />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
<property name="dataSource" ref="dataSource" />
</bean>
因为spring容器和spring-mvc是父子容器,spring容器会先加载,如果此时扫描了Controller,但未扫描到Service。
spring事务配置文件还有上下文都是通过org.springframework.web.context.ContextLoaderListener加载的,而spring MVC的action是通过org.springframework.web.servlet.DispatcherServlet加载的 。
web是先启动ContextLoaderListener后启动DispatcherServlet 在ContextLoaderListener加载的时候action并没在容器中,所以现在使用AOP添加事务或者扫描注解都是无用的。
结论:让spring扫描注册Service实现类,让MVC扫描注册Controller,此时spring父容器已经注册Service为Bean,此时事务可以得到正常配置。
0 0
- spring mvc 给Controller添加事务不成功的原因
- spring mvc 给Controller添加事务不成功的原因
- spring mvc 给Controller添加事务不成功的原因
- spring mvc 给action添加事务不成功的原因
- spring mvc 给action添加事务不成功的原因
- spring mvc 给action添加事务不成功的原因
- spring mvc 给Controller添加事务
- spring mvc的Controller
- Spring mvc 的controller
- 如何给Spring MVC的action加上事务
- spring mvc的controller国际化
- spring mvc 的Controller类是单例?
- spring mvc 的Controller类是单例?
- WinCE控制面板添加应用程序-添加程序不成功的原因
- 在Spring MVC中,事务可以加在Controller层
- 在Spring MVC中,事务可以加在Controller层
- 在Spring MVC中,事务可以加在Controller层
- 在Spring MVC中,事务可以加在Controller层
- 怎么成为大牛?
- 深度学习调参策略
- leetcode_middle_96_142. Linked List Cycle II
- Ubuntu上使用Apache搭建web服务器
- Java面试题全集(1)
- spring mvc 给Controller添加事务不成功的原因
- css3多列及瀑布流效果
- 简单实现IO读写
- Java面试题全集(2)
- EXCEL-SUMIFS多条件求和(筛选效果)
- CCF201403-1 相反数(解法二)(100分)
- 【Java每日一题】20170310
- mybatis入门
- Java面试题全集(3)