1、启动步骤
以ClassPathXmlApplicationContext为例
①设置parent ApplicationContext
②设置配置环境
③刷新上下文:要么所有被实例化,有么全部未实例化
a、准备:一些标志变量、事件的初始化
b、刷新BeanFacotry(可选)
销毁BeanFacotry中的单例对象
关闭BeanFacotry
创建BeanFactory
加载Bean定义,存在Map集合中
2、注入方式
①构造注入:通过构造方法进行赋值
②set注入:通过set方法进行赋值
③注解注入:通过代码中使用注解进行赋值
3、作用域scope
singleton:单例模式,spring负责创建和销毁,用于资源类对象------------默认
prototype:多例模式,spring只负责创建不负责销毁
4、延迟加载
true:延迟加载,在getBean时才对对象进行初始化
false:非延迟加载,在context初始化的时候进行初始化
5、主要类和接口
BeanFactory系列容器:实现了简单容器的基本功能
提供获取Bean的方法,
提供判断容器总是否存在指定名字的Bean的方法
提供判断指定名字的Bean是否为singleton的Bean
提供判断指定名字的Bean是否为prototype的Bean
提供判断指定名字的Bean是否为特定的Class类型
提供获取指定名字的Bean的类型
提供获取指定名字的Bean的别名,
ApplicationContext上下文:在简单容器的基础上,增加了面向框架的特性
BeanDefinition:对Bean定义的抽象
5、IOC容器启动过程
①Resource定位阶段
②BeanDefinition载入
③向IOC容器中注册BeanDefinition过程