Spring事务在controller层中没用的原因以及解决方法

本文探讨了Spring事务在Controller层不起作用的原因,主要在于Spring MVC的配置中Controller层被排除在事务扫描之外。为了解决这个问题,需要在Spring MVC的XML配置文件中添加特定的事务配置,例如使用`<mvc:annotation-driven/>`来启用Controller层的事务支持。通过理解这一机制,开发者可以更好地管理Spring应用中的事务处理。
摘要由CSDN通过智能技术生成

Spring事务在controller层中没有用的原因以及解决方法

我们在进行SSM整合的时候,会按照spring和springMVC的配置文件分别分开配置
对于SpringMVC的DispatcherServlet会比spring的ContextLoaderListen加载的要慢

并且在spring的xml配置文件中在进行包扫描的时候会排除掉controller层
<context:component-scan base-package="com.ssmcon">
        <context:exclude-filter type="annotation" 
        expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>`
因此如果只是在spring中配置事务 如下
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>

则该事务@Transactional只会在service层中启用,对于controller层,没有作用,如果要想要在controller层中开启事务
要在springMvc的xml配置文件中加上如下事务配置
<mvc:annotation-driven/>

才能够在springMvc的controller开启事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值