前言 事务,是描述一组操作的抽象,比如对数据库的一组操作,要么全部成功,要么全部失败。事务具有4个特性:Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)。在实际开发中,我们对事务应用最多就是在数据库操作这一环,特别是Spri ...
分类:
编程语言 时间:
2019-03-20 09:12:15
阅读次数:
164
什么是事务,很通俗的话来说就是,我们日常生活中总会出现在银行转账的业务,加入A向B转账100元,此时A的账户中应该减少100元,B的账户中增加100元,但是如果在A转完账B还没有接受的时候,服务器出现了故障,一般银行的系统都会给出交易失败的提示,并且A的账户中总金额也不会变,那么这就类似一个事务。 ...
分类:
数据库 时间:
2019-03-03 20:55:35
阅读次数:
217
一、四大隔离级别 ISOLATION_READ_UNCOMMITTED:读未提交 ISOLATION_READ_COMMITTED:读已提交 ISOLATION_REPEATABLE_READ:可重复读 ISOLATION_SERIALIZABLE:串行化 脏读:A事务读取B事务尚未提交的更改数据, ...
分类:
编程语言 时间:
2019-03-03 20:39:57
阅读次数:
245
大年初二,朋友问了我一个技术的问题(朋友实在是好学,佩服!)开启10000个线程,每个线程给员工表的money字段【初始值是0】加1,没有使用悲观锁和乐观锁,但是在业务层方法上加了synchronized关键字,问题是代码执行完毕后数据库中的money字段不是10000,而是小于10000问题出在哪里?Service层代码:SQL代码(没有加悲观/乐观锁):用1000个线程跑代码:简单来说:多线程
分类:
编程语言 时间:
2019-02-26 19:15:59
阅读次数:
171
本文主要介绍下Spring事务中的传播行为。 事务传播行为介绍 Spring中的7个事务传播行为: |事务行为|说明 | |: |: | |PROPAGATION_REQUIRED | 支持当前事务,假设当前没有事务。就新建一个事务 | | PROPAGATION_SUPPO ...
分类:
编程语言 时间:
2019-02-24 11:03:21
阅读次数:
212
1、概述 1.1 Spring的事务是通过AOP来实现事务处理 1.2 Spring支持声明式事务处理、编程式事务处理(使用时,声明式比编程式更方便一些) 1.3 Spring把那些通用的事务处理过程抽象出来,并通过AOP的方式进行封装; 用户以声明式的使用方式使用,只需要关注事务的处理策略; 1. ...
分类:
编程语言 时间:
2019-02-23 21:54:30
阅读次数:
199
事务管理一般有编程式和声明式两种,编程式是直接在代码中进行编写事物处理过程,而声名式则是通过注解方式或者是在xml文件中进行配置,相对编程式很方便。 而注解方式通过@Transactional 是常见的。我们可以使用@EnableTransactionManagement 注解来启用事务管理功能,该 ...
分类:
编程语言 时间:
2019-02-21 16:13:11
阅读次数:
158
事务的传播属性 PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。// 最常用,@Transactional注解默认 PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATI ...
分类:
编程语言 时间:
2019-02-17 12:51:35
阅读次数:
193
一、事务相关: 1.Spring事务基于Spring AOP切面编程; 2.AOP基于代理模式,得到需要开启事务的代码的代理对象; 3.而没有开启事务的Service方法里调用了开启事务 @Transactional 的方法时,整个代码是不会开启事务的,原理还是代理模式插入事务的依据是最外层的注解; ...
分类:
编程语言 时间:
2019-02-12 15:53:44
阅读次数:
430
Spring事务基于AOP环绕通知和异常通知 编程事务 声明事务 Spring事务底层使用编程事务+AOP进行包装的 = 声明事务 AOP应用场景: 事务 权限 参数验证 什么是AOP技术 AOP技术应用场景 面向切面编程 解决代码复用问题 AOP编程核心点: 在方法之前或者之后处理事情 AOP底层 ...
分类:
编程语言 时间:
2019-02-12 00:05:34
阅读次数:
231