Spring之路(36)–事务很重要吗?Spring为何要封装事务?Spring事务有陷阱吗?

简介: 本文目录1. 可以不使用事务吗2. 事务到底是啥3. Spring为何要封装事务4. Spring事务有陷阱吗

1. 可以不使用事务吗

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


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


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


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


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


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


2. 事务到底是啥

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


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


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


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


3. Spring为何要封装事务

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


4. Spring事务有陷阱吗

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

相关文章
|
12天前
|
XML Java 数据库
Spring框架第五章(声明式事务)
Spring框架第五章(声明式事务)
|
19天前
|
Java 开发者 Spring
spring事务类型,事务传递,隔离级别?
spring事务类型,事务传递,隔离级别?
|
2天前
|
Java Spring
Spring Boot中的事务管理策略
Spring Boot中的事务管理策略
|
2天前
|
Java 数据库连接 开发者
在Spring的try-catch块中手动实现事务回滚
在Spring的try-catch块中手动实现事务回滚
6 0
|
2天前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
6 0
|
2天前
|
Java Spring
Spring Boot中的事务管理策略
Spring Boot中的事务管理策略
|
4天前
|
缓存 算法 Java
spring-三级缓存-生命周期-spring事务-IOC-AOP
spring-三级缓存-生命周期-spring事务-IOC-AOP
|
4天前
|
缓存 Java 数据库连接
spring中注解驱动事务框架的源码
spring中注解驱动事务框架的源码
|
9天前
|
存储 Java 关系型数据库
Spring事务失效的 8 大原因,这次可以吊打面试官了!
Spring事务失效的 8 大原因,这次可以吊打面试官了!
|
2月前
|
Java 关系型数据库 MySQL
Spring 事务和事务传播机制
Spring 事务和事务传播机制
Spring 事务和事务传播机制