博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC的事务不回滚
阅读量:7056 次
发布时间:2019-06-28

本文共 1226 字,大约阅读时间需要 4 分钟。

版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/43530213

前言:今天在测试web管理端项目时,非常尴尬的是方法虽然用了事务注解,然而执行出错的情况下却没有进行事务回滚,也就是说@Transactional在springMVC的场景下失效了,通过调查和试验得出DispatcherServlet的context-dispatcher.xml和ContextLoaderListener的applicationContext.xml在进行context:component-scan标签设定时,需要互不影响

最开始的时候,我在DispatcherServlet的context-dispatcher.xml配置以下内容

在ContextLoaderListener的applicationContext.xml配置以下内容
在这样的情况下,假如存在以下方法
@Transactional	public void saveMember(Members members, HttpServletRequest request) throws Exception {
该方法内出现错误的时候,事务压根没有起到作用,修改以上两个文件到以下这样的效果

context-dispatcher.xml:

applicationContext.xml:
然后再测试saveMember方法,出错的情况下事务回滚了,可以看到事务回滚的日志了
Transaction synchronization rolling back SqlSession DEBUG 2015-02-05 17:30:11,074 org.springframework.jdbc.datasource.DataSourceTransactionManager: Releasing JDBC Connection DEBUG 2015-02-05 17:30:11,074 org.springframework.jdbc.datasource.DataSourceUtils: Returning JDBC Connection to DataSourceERROR 2015-02-05 17:30:11,075 com.honzh.spring.controller.MemberController: java.lang.NullPointerException
可以看得出来:

有@Transactional注解的类需要通过父容器(applicationContext.xml)进行加载,而我原来的做法时,同时加载后,父容器和子容器发生冲突了,导致事务失效

你可能感兴趣的文章
牛客寒假6-E.海啸
查看>>
linq 读取xml
查看>>
const 总结
查看>>
@RestController注解下返回到jsp视图页面
查看>>
搜索框请输入关键字 onfocus 和 onblur
查看>>
随手记:IDAPro蛮强大
查看>>
maven的下载以及安装
查看>>
数组排序
查看>>
前端性能优化-----转发的
查看>>
CentOS 7 开放防火墙端口 命令
查看>>
深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
查看>>
HDU 1181 变形课 【DFS】
查看>>
MySQL事务
查看>>
7月26日实习日志
查看>>
Django之 路由系统
查看>>
UVa 679 Dropping Balls (例题 6-6)
查看>>
FileWriter写数据
查看>>
【Andorid X 项目笔记】TextView字幕效果(3)
查看>>
HDU 1002
查看>>
练习markdown语法
查看>>