spring+mybatis 注解事务失效

本文深入探讨了Spring MVC框架中@Transaction注解的使用,包括其必须在父容器加载、方法为public以及默认回滚机制等内容。同时,介绍了如何在特定异常下自定义回滚策略,并解释了在配置文件中正确加载配置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Transactional可用要保证:
1必须是父容器加载的
2标注的方法是public
3默认回滚是runtimeException。可通过 @Transactional(rollbackFor={ArithmeticException.class}) 修改

对于第一点说明:
web.xml加载顺序是context-param -> listener-> filter -> servlet
listener加载config是父容器,有@Transactional方法的类必须是在父容器加载,
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config.xml</param-value>
</context-param>
=============
而如何放在
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
放在spring mvc config里加载的确不可以。
==============
另外<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
中自动提交可以不配置也可以回滚

<property name="autoCommitOnClose" >
<value>false</value>
</property>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值