博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC中,事务是否可以加在Controller层
阅读量:6107 次
发布时间:2019-06-21

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

 一般而言,事务都是加在Service层的,但是爱钻牛角尖的我时常想:事务加在Controller层可不可以。我一直试图证明事务不止可以加在Service层,还可以加在Controller层,但是没有找到有力的论据来支持我这个想法,搞得我一度认为事务只能加在Service层,直到我读过官方文档并实践之后,我知道我的想法是对的。

    在spring-framework-reference.pdf文档中有这样一段话:

<tx:annotation-driven/> only looks for @Transactional on beans in the same application context it is defined in. This means that, if you put <tx:annotation-driven/> in a WebApplicationContext for a DispatcherServlet, it only checks for @Transactional beans in your controllers, and not your services. 

    这句话的意思是,<tx:annoation-driven/>只会查找和它在相同的应用上下文件中定义的bean上面的@Transactional注解,如果你把它放在Dispatcher的应用上下文中,它只检查控制器上的@Transactional注解,而不是你services上的@Transactional注解。

    于是,我将事务配置定义在Spring MVC的应用上下文(*-servlet.xml)中,将@Transactional注解打在Controller上,终于事务起作用了。

    综上,在Spring MVC中,事务不仅可以加在Service层,同样也可以加在Controller层(虽然不推荐这么做,但至少满足了我的好奇心,(*^__^*) 嘻嘻……)。

 

注意: Controller层只支持 @Transactional 注解式事务!

 

原文:http://blog.csdn.net/mmm333zzz/article/details/45288061

转载于:https://www.cnblogs.com/garfieldcgf/p/5666891.html

你可能感兴趣的文章
JetBrains在CLion的Linux和OS X版本中引入Swift支持
查看>>
当编程语言掌握在企业手中,是生机还是危机?
查看>>
为什么BDD可以拯救敏捷
查看>>
64位的Mac OS X也有Windows.Forms了
查看>>
Kayenta:来自Netflix和Google的开源金丝雀分析工具
查看>>
如何使用敏捷开发来赢得太阳能竞速赛
查看>>
SOA和微服务之间的区别
查看>>
一个“Internal”牵扯出的代码泄露,阿里云独家回应
查看>>
多重影分身:一套代码如何生成多个小程序?
查看>>
我们常常意识不到问题的存在,直到有人解决了这些问题
查看>>
Siemens Healthineers在teamplay使用持续交付
查看>>
微服务开源项目ServiceComb 毕业成为Apache顶级项目
查看>>
Chrome和Firefox即将开始在不安全的网站显示警告信息
查看>>
Kappa: 简化AWS Lambda部署
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
基于Gitflow分支模型自动化Java项目工作流
查看>>
HTML5游戏引擎Egret发布2.0版 开发工具亦获更新
查看>>
如何防范XSS和CSRF?
查看>>
Monkey测试的策略和分析
查看>>
又拍云张聪谈安全、HTTPS、自定义、CDN的未来趋势
查看>>