目录
SpringBean的生命周期
SpringIOC容器中的Bean默认都是单例设计模式。每个Bean只有一个实例化对象存在于SpringIOC容器中。因此SpringIOC容器负责Bean的产生,使用和销毁等生命周期。
一、实例化Bean
1、BeanFactory:用户发送请求时,容器调用createBean进行实例化
2、ApplicationFactory:容器一旦启动,便对所有容器进行实例化
二、注入对象依赖的属性值(或对象)
实例化后,Bean被封装在BeanWrapper中,Spring会根据BeanDefinition中的信息进行依赖注入。并且会根据通过BeanWrapper通过接口的属性完成依赖注入。
三、处理各自Aware接口
Spring会检测该对象是了xxxAware接口,并将相关实例注入给Bean。
- 如果Bean实现BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,注入Bean的名字
- 如果Bean实现BeanClassLoaderAware接口,会调用setBeanClassLoader( )方法,注入ClassLoader对象的实例
- 如果Bean实现BeanFactoryAware接口,会调用它实现的setBeanFactory( )方法,注入的是Spring方法
- 如果BeanApplicationContextAware接口,会调用setApplicationContext( )方法,注入Spring的上下文
四、执行BeanPostProcessor前置处理