spring知识点整理

1.IOC容器构建流程

1.获取一个新的bean工厂,通常是ApplicationContext
2.加载和解析spring的配置文件,解析bean对象,封装为beanDefinition对象,放在本地缓存中
3.对象实例化和初始化bean对象
5.完成容器的构建

2.spring中bean的生命周期

简单来说:
	实例化:实现方法createBeanInstance()
	属性赋值:实现方法populateBean()
	初始化:使用方法initializeBean()
	使用
	销毁

3.关于AOP

对原有类或接口进行增强,实现原理是动态代理:
具体实现方式参考以下文章:

动态代理之JDK动态代理的实现
动态代理之CGLIB动态代理的实现

4.Spring 的事务隔离级别

默认:使用数据库隔离级别
读未提交:最低隔离级别,可以读取到其他事物未提及的内容
读已提交:读取到的内容都是已提交的
可重复读:在一个事物中可以重复读取相同的内容
串行化:最高隔离级别,读写都会加锁

5.循环依赖问题

什么是循环依赖:
	两个对象互相引用
解决方式:
	三级缓存
举个例子:
	A依赖了B,B也依赖了A,那么依赖注入过程如下。
		1.检查 A 是否在缓存中,发现不存在,进行实例化
		2.通过构造函数创建 bean A,并通过 ObjectFactory 提前曝光 bean A
		3.A 走到属性填充阶段,发现依赖了 B,所以开始实例化 B。
		4.首先检查 B 是否在缓存中,发现不存在,进行实例化
		5.通过构造函数创建 bean B,并通过 ObjectFactory 曝光创建的 bean B
		6.B 走到属性填充阶段,发现依赖了 A,所以开始实例化 A。
		7.检查 A 是否在缓存中,发现存在,拿到 A 对应的ObjectFactory 来获得 bean A,并返回。
		8.B 继续接下来的流程,直至创建完毕,然后返回 A 的创建流程,A 同样继续接下来的流程,直至创建完毕

6.@Resource 和 @Autowire

都是用来装配bean
@autowire默认按类型装配,默认情况下依赖对象必须存在
@Resource如果指定了name和type,则按指定装配,如果不知道,怎优先按名称进行装配
@autowire可以配合配合 @Qualifier 实现按名称装配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DYS_房东的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值