Spring框架注解式事务的缺陷

事务基于连接(Connection)是基本的,由于Spring框架里,类实例的创建都是框架完成,参与事务的方法之间没有连接的传递,因此要保证事务的执行,就只能采用其它的方法,Spring框架采用的是将一个线程中执行的标有事务注解的数据库操作采用一个连接来达成事务处理的目的,优点是简单,不用程序员操心。但实际上这种事务处理方式有非常大的局限性:

1)如果一个线程中有多个不同的事务很难处理;

2)方法一旦被注解为事务,只要在一个线程中执行都会被当作事务处理,这不利于积木式编程,因为同样一个方法是否参与事务是和调用者相关,而不是线程相关的;

注解对于编程提供了一些便利,但同时也增加了复杂度,减少了灵活性。我一直觉得Spring框架最大的好处(统一管理Bean)其实也是Spring框架最大的败笔,程序员还是需要控制感和灵活性。过度的配置其实反而不好。同时,这个框架对于做分布式来说也是非常不利的。

我们的解决之道就是直接依赖JDBC进行重构,将事务的处理融合在架构之中,这样,任何一个方法是否参与事务是由调用者决定的,即使是不在一个线程中执行,也不会影响,因为我们的事务是可以跨线程的。这也对分布式架构中并行处理的事务提供了可能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值