(1)什么是Bean生命周期
Bean生命周期描述的是Spring中一个Bean创建过程和销毁过程中所经历的步骤,其中Bean创建过程是重点。
程序员可以利用Bean生命周期机制对Bean进行自定义加工。
(2)Bean的创建生命周期 核心步骤,按顺序
BeanDefinition:Bean定义。它定义了某个Bean的类型,Spring就是利用BeanDefinition来创建Bean的,比如需要利用BeanDefinition中beanClass属性确定Bean的类型,从而实例化出来对象。
构造方法推断:选出一个构造方法。一个Bean中可以有多个构造方法,此时就需要Spring来判断到底使用哪个构造方法。通过构造方法推断之后确定一个构造方法后,就可以利用构造方法实例化得到一个对象了。
实例化:构造方法反射得到对象。通过构造方法反射得到一个实例化对象,在Spring中,可以通过BeanPostProcessor机制对实例化进行干预。
属性填充:给属性进行自动填充。实例化所得到的对象,是“不完整”的对象,“不完整”的意思是对该对象中的某些属性还没有进行属性填充,也就是Spring还没有自动给某些属性赋值,属性填充就是我们通常说的自动注入、依赖注入。
初始化:对其他属性赋值、校验。在一个对象的属性填充之后,Spring提供了初始化机制,程序员可以利用初始化机制对Bean进行自定义加工,比如可以利用InitializingBean接口来对Bean中的其他属性进行赋值,或对Bean中的某些属性进行校验。
初始化后:AOP、生成代理对象。初始化后是Bean创建生命周期中最后一个步骤,我们常说的AOP机制,就是在这个步骤中通过BeanPostProcessor机制实现的,初始化之后得到的对象才是真正的Bean对象。
网友评论