一:目的:
spring作为java开发的“范本”,极具学习价值。我将在这里尽量用简练的白话文,记录下学习的过程和遇到的问题。
二:开端
从spring官网(https://spring.io/)找到spring的全家桶。发现作为“基石”的成员“springFramework”以及“springBoot”。最终决定,以封装较少的springFrameWork作为第一个学习的目标。
学习一个框架之前的准备工作有:
1:了解框架的定义,明白其解决了哪些问题
2:大致查找框架的基本架构。选择学习的切入口
3:从官网拿到源码。
过程不在赘述。
目录
Spring Framework
一:架构图:
可以看到。spring提供了业务和非业务的功能支撑。共6大模块,以容器的形式对bean进行管理并以对bean的操作为核心。 因此,我们选择ioc作为切入点进行了解。
IOC(控制反转):创建bean的实例的角色从程序员变为spring。配合DI(依赖注入):将有依赖关系的2个bean在实例化过程中关联起来。两者配合,完成对bean的初步管理(实例化),不需要开发者手动实例化(new)
方式:源码阅读以及核心功能手写。
二:概念理解(实时更新)
高级容器和基础容器的理解和区别
基础容器-beanFactory :维持容器的最本质功能~管理bean。
创建时机:创建bean实例的时机是,bean被调用的时候,比如getBean的时候。
高级容器-applicationContext:提供更高端的容器功能。
创建时机:当服务(tomcat)启动后,会创建高级容器的所有bean实例(预先初始化)
关系:高级容器是基础容器的子类。两者是继承关系。
循环依赖的原因