Spring生命周期
1.实例化 Instantiation
2.属性赋值 Populate
3.初始化 Initialization
3.1 aop
4.销毁 Destruction
通过反射 一个类的构造方法 ->通过实例化得到一个初始化对象 -> 属性填充 ->
初始化 ->判断是否需要aop ->需要生成bean 还是代理对象
InitializingBean 实现这个接口可以在bean初始化的时候调用
接口里面的这个方法
@Override
public void afterPropertiesSet() throws Exception {
//在为属性设置完值之后会去调用这个方法
}
autowired
在注入时首先会byType 如果一个类型有多个bean,那么会byName,会根据下图去筛选。
Spring里用到的设计模式
1.简单工厂
getBean 传入一个bean名字返回一个不同类型实例化的bean
2.单例模式
==================================================================
四。Spring如何生产一个Bean,IOC的加载过程
首先通过BeanDefinitionScanner(发传单)去扫描,BeanDefinitionReader(跟客户谈需求)去读取,BeanDefinitionRegistry(拿着客户需求生产)去注册到BeanDefinitionMap里。