可以不使用事务吗

真的遇到过开发企业应用,但是不知道啥是事务的朋友。

好吧,我始终认为抛开性能、界面、易用性等方面不说,正确性应该是一个项目最基础的要求了。

所以,凡是企业应用,正儿八经有客户的系统,不是那种个人为了学习实验闹着玩的项目,都应该准确的使用事务。

因为根据墨菲定律——凡事只要有可能出错,那就一定会出错,不使用事务,那肯定会出问题的。

当然绝大多数的程序员,对事务的理解还是比较深刻的。

Spring 事务这一部分,主要就是讲述如何在Spring框架之内应用事务,享受Spring带来事务操作的便捷之外,还要注意避免一些可能出现问题的陷阱。

事务到底是啥

事务就是在执行多个数据库操作时,保证这些操作要么全部成功,要么全部失败的机制。

举个例子,我们在支付宝付款时,首先账户中余额要减去一定金额,然后要生成一条消费记录。如果没有事务保护这两个操作,则可能会发生钱少了、没有消费记录。或者生成消费记录了,钱没扣?出现这种问题的话,客户和支付宝都接受不了,那这个程序还能不能用?铁定不能啊。

如果使用了事务,那么扣余额、生成记录,要么都成功,要么都失败。也就是说如果扣完了余额,在执行生成记录时因为各种原因(例如程序报错、数据库崩溃、网络异常)导致执行失败,则扣余额这个动作也会失败。

所以事务实际上保证了数据的完整性。

Spring为何要封装事务

还是因为原生的事务方法有很多重复代码,使用起来不方便,所以使用Spring封装后,操作便捷性大大提升,但是世界上的事情都有两面性,便捷性提升带来的问题是隐藏了底层信息,所以我们还是要了解Spring封装事务的一些细节,以便享受便捷代码的同时规避可能出现的问题。

Spring事务有陷阱吗

这个是必然有的,所以要好好了解下Spring事务,而不是只知道一个@Transactional注解。

java 封装事务_Spring之路(36)–事务很重要吗?Spring为何要封装事务?Spring事务有陷阱吗?...相关推荐

  1. java中mvc事务_Spring MVC 事务配置

    Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 以下所使用环境为Spring4.0.3.Hibernate4.3 ...

  2. java编程式事务_Spring编程式和声明式事务实例讲解

    Spring事务管理 Spring支持两种方式的事务管理: 编程式事务管理: 通过Transaction Template手动管理事务,实际应用中很少使用, 使用XML配置声明式事务: 推荐使用(代码 ...

  3. java 配置嵌套事务_Spring 事务嵌套的配置

    问题 在使用Spring管理Service层事务时,会遇到service方法事务嵌套的问题. 默认情况下,service方法有自己独立的事务,如果一个复杂的service方法中,调用了多个事务操作,中 ...

  4. 001 spring5框架:java类工程,IOC:实体类表示表关系,AOP,JdbcTemplate模板,事务操作,Spring5 框架新功能:日志,为空注解,函数式风格,juint,Webflux

    1. Spring5 框架(Spring5 Framework)介绍 1.1 概念 1.Spring 是轻量级的开源的 JavaEE 框架 2.Spring 可以解决企业应用开发的复杂性 3.Spri ...

  5. springcloud分布式事务_Spring Cloud学习资源一网打尽!Awesome Spring Cloud v1.0

    公正.公平.尊重原创.不夹带私人恩怨的Spring Cloud学习资源列表. TIPS: •本文链接较多,为了更好的阅读体验,建议翻到文章末尾,点击"扩展链接",排版相对好很多. ...

  6. spring jms 事务_Spring JMS:处理事务中的消息

    spring jms 事务 1.引言 这篇文章将向您展示使用JMS异步接收消息期间使用者执行过程中的错误如何导致消息丢失. 然后,我将解释如何使用本地事务解决此问题. 您还将看到这种解决方案在某些情况 ...

  7. spring 测试 事务_Spring陷阱:事务测试被认为是有害的

    spring 测试 事务 Spring杀手级功能之一是容器内集成测试 . 尽管EJB多年来一直缺乏此功能(Java EE 6终于解决了这个问题,但是我尚未进行测试),但是Spring从一开始就允许您从 ...

  8. jdbctemplate 开启事务_Spring(四):事务管理

    事务 首先,我们要知道事务是什么 构成单一逻辑工作单元的操作集合称为事务 事务的ACID特性 原子性:不可分割的最小操作单位,要么同时成功,要么同时失败 一致性:事务操作前后,数据总量不变 隔离性:多 ...

  9. springboot 事务_Spring Boot中的事务是如何实现的?懂吗?

    一个SpringBoot问题就干趴下了?我却凭着这份PDF文档吊打面试官. 金三银四第一天,啃透这些SpringBoot知识点,还怕干不赢面试官? Spring全家桶笔记:Spring+Spring ...

最新文章

  1. 团队项目博客---移山小分队---3
  2. Python基本语法_控制流语句_if/while/for
  3. 5.4 SVM的使用建议-机器学习笔记-斯坦福吴恩达教授
  4. 去掉“3_人民日报语料”中每行前边的数字编号,改成“1, 2,......”
  5. 【机器视觉】 dev_get_system算子
  6. 在kubernetes集群中运行nginx
  7. SAP 电商云 Spartacus UI 的 feature module 设计原理
  8. java反射成员变量_java反射之成员变量的反射
  9. 让猎头雨天送伞--大话猎头
  10. PS滤镜Nik Collection 2 for mac中文版合集
  11. lua java效率_luaJavaBridge详解
  12. STM32学习记录0005——JLINK下载与调试
  13. 安卓APP应用在各大应用市场上架方法整理
  14. Python爬虫实战案例:取喜马拉雅音频数据详解
  15. 天津大学计算机学院考研复试名单,天津大学各学院2019考研复试办法及复试名单...
  16. MySQL创建数据库得语句是什么_创建数据库的语句是什么
  17. 晨枫U盘启动盘制作工具V4.0-安装原版Win7
  18. arcgis地图加载离线地图
  19. 农村宅基地审批管理系统
  20. DirBuster工具扫描敏感文件

热门文章

  1. Android控件点击圆形阴影反馈解决方案
  2. SDCC 2016 中国软件开发者大会盛大开幕
  3. Maven项目下HttpServletRequest 或 HttpServletResponse需引用的依赖包
  4. win7上安装theano keras深度学习框架
  5. 谈谈Java程序员进阶的那些知识和方向
  6. 随办 企业打造完美执行团队的终极利器
  7. mysql一列的第二个值,mysql – 如果另一列有多个值,如何选择按列分组的值
  8. 总线控制内部eep_【上周回顾】小白如何自学单片机;电子专业的十个神总结;摩尔定律54年;电子工程师常弄混的总线分类汇总;他做成了半导体害怕他做的事...
  9. python requests max retries_我可以为request.request设置max_retries吗?
  10. 七夕要到了,用Python比心表白