日常小整理
一.数据库隔离级别
1.READ UNCIMMITTED(未提交读)
事务还没提交,而别的事务可以看到他其中修改的数据的后果,也就是脏读。
2.READ COMMITTED(提交读)
首先大多数数据库系统的默认隔离级别是READ COMMITTED,这种隔离级别就是一个事务的开始,只能看到已经完成的事务的结果,正在执行的,是无法被其他事务看到的。这种级别会出现读取旧数据的现象
3.REPEATABLE READ(可重复读)
REPEATABLE READ解决了脏读的问题,该级别保证了每行的记录的结果是一致的,也就是上面说的读了旧数据的问题,但是却无法解决另一个问题,幻行,顾名思义就是突然蹦出来的行数据。指的就是某个事务在读取某个范围的数据,但是另一个事务又向这个范围的数据去插入数据,导致多次读取的时候,数据的行数不一致。
4.SERIALIZABLE(可串行化)
SERIALIZABLE是最高的事务隔离级别,同时代价也花费最高,它通过强制事务串行执行(注意是串行),性能很低,一般很少使用,在该级别下,事务顺序执行,不仅可以避免脏读、不可重复读,还避免了幻像读,在需要数据一致性且并发量不需要那么大的时候才可能考虑这个隔离级别。
二.IOC和AOP
1. IOC控制反转,简单点说,就是创建对象的控制权,被反转到了Spring框架上,之前有我们需要什么创建什么变为了spring统一注册创建管理 我们需要什么通过注解等方法直接来使用。
IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。
2.AOP核心思想是将业务逻辑中与类不相关的通用功能切面式的提取分离出来,让多个类共享一个行为,一旦这个行为发生改变,不必修改类,而只需要修改这个行为即可。
AOP的优点:利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
示例:日志记录、事务处理、异常处理、安全控制和性能统计方面。