文章目录
- 前言
- 一、基础接口
- 1.Resource
- 2.ResourceLoader
- 3.BeanFactory
- (1)总览
- (2)继承如下
- (3)重要的工厂
- 4. ApplicationContext
前言
- 一开始学习spring我们首先还是要搞清楚他的整体架构,就是他是干嘛的,里面是怎么跑的(读资源到bean工厂=》创建bean定义=》按照bean定义造bean=》放到池中使用)
Spirng 痛苦源码学习(一)——总起spring(一)
- 擒贼先擒王,认识里面几个重要的类和接口
-
基础接口
Resource+ResourceLoader
BeanFactoryIOC容器的顶层接口,只是其中的一个功能
BeanDefinitionbean定义信息
BeanDefinitionReaderbean定义读取
BeanDefinitionRegistrybean定义注册
SingletonBeanRegistry ·单例bean注册
ApplicationContext是BeanFactory的子类
Aware各种Aware接口
-
生命周期-后置处理器
BeanFactoryPostProcessor
InitializingBean
BeanPostProcessor
-
一、基础接口
spring中的一些主脉络,这也是设计模式中的依赖倒置原则,面向接口编程
1.Resource
ctrl+F12看方法,ctrl+H看实现类
资源可以看到我的资源可以来着很多地方。web项目下的指定路径,网络,流。。。
2.ResourceLoader
资源加载接口,策略接口
===》策略模式UML类图
策略模式就是抽象出行为和主体。
例子:一个人怎么去北京。人就是主体,那么交通方式就是行为方式,就可以抽象一个交通方式的接口,然后聚合到行为主体中,传入具体的子类来完成不同的策略。
那么spring的资源加载也是如此,怎么读资源就是一种行为
ctrl H 看一下继承
===》策略环境持有者(IOC容器持有)
3.BeanFactory
(1)总览
在spring 的整体架构流程图中,我们可以知道Spring就是在Bean工厂造东西的过程。
同时通过该注释我们也可以看到这是一个根接口,是Spring容器的入口
(2)继承如下
- HierarchicalBeanFactory:定义父子工厂(父子容器)
- ListableBeanFacotory:的实现是DefaultListableBeanFactory,保存了ioc容器中的核心信息
- AutowireCapableBeanFactory:提供自动装配能力
(3)重要的工厂
缓存了各种信息,bean定义信息,bean信息等核心信息
4. ApplicationContext