SpringDI原理
SpringDI依赖注入大概分为两个部分:
- 实例化对象
- 依赖注入
1.实例化对象
通过容器的getBean方法触发对Bean的实例化与依赖注入,BeanFactory会根据之前缓存的BeanDefinition配置信息,通过反射实例化对象。
2.依赖注入
依赖注入的入口是populateBean方法,在IoC初始化过程中,Bean的字段信息会被封装成PropertyValue数据,Spring会根据ProertyValue循环赋值。如果是自动装配,则会在postProcessProperties后置处理器方法中进行注入。最后将对象封装成一个BeanWrapper对象。