Spring

目录

IOC

概念:

什么是耦合:

底层:

Spring提供的两种IOC容器实现方式:​

Bean的生命周期:

 AOP

底层原理:动态代理

 事务操作

事务的四个特性:

事务传播行为: 

主要的两种传播行为:

隔离级别isolation:

四种隔离级别


IOC

概念:

控制反转,把对象创建和对象之间的调用过程,交给spring管理。这样做的目的是降低耦合。

什么是耦合:

比如说两个对象之间的调用,如果使用一般方式的话,被调用的对象的类如果路径发生变化、方法发生变化则调用的那个对象就要改,这样两个对象之间依赖太强了,耦合度就太高了。

底层:

通过解析xml获取类路径,再利用对象工厂通过反射的方式创建对象存入Map(IOC容器)。

Spring提供的两种IOC容器实现方式:

Bean的生命周期:

 定义一个类实现BeanPostProcessor接口,重写postProcessBeforeInitialization和postProcessAfterInitialization两个方法分别在初始化之前和之后执行。

 AOP

面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。

不通过修改源代码,在主干功能里面添加新功能。

底层原理:动态代理

有接口的话就用代理对象实现接口,对方法进行增强。

没接口的话就用代理对象继承类,对方法进行增强。

第一种使用的是JDK动态代理,第二种是CGLIB

过程:

使用Proxy类的newProxyInstance方法创建代理类

创建一个实现了InvocationHandler接口的类,这个类要传入需要增强方法的类的对象,然后重写invoke方法;这个方法可以在被增强函数的增加内容。最后使用newProxyInstance创建的代理类对象调用方法实际上就是调用被增强的invoke方法了。

 事务操作

是一个对AOP的运用

事务的四个特性:

原子性:要么都成功要么都失败

一致性:操作前后数据完整性和状态不变

隔离性:两个事务之间互补产生影响

持久性:操作数据库的数据

事务传播行为: 

指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。

例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。

主要的两种传播行为:

PROPAGATION_REQUIRED

如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。

PROPAGATION_REQUIRED_NEW

需要使用 JtaTransactionManager作为事务管理器。
它会开启一个新的事务。如果一个事务已经存在,则先将这个存在的事务挂起。

隔离级别isolation:

事务有一个特性是隔离性,多事务之间操作不会影响,不考虑隔离性会产生很多问题:脏读、不可重复读、虚(幻)读。

脏读(需要解决):一个未提交事务读取到了另一个未提交事务的数据

不可重复读:一个未提交事务读取到了另一提交事务修改的数据。

虚读:一个未提交事务读取到了另一提交事务增加的数据。

四种隔离级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值