什么是Bean生命周期?
Bean生命周期描述的是Spring中一个Bean创建过程和销毁过程中所经历的步骤,其中Bean的创建过程是重点。
程序员可以利用Bean的生命周期机制对Bean进行自定义加工。
Bean的创建生命周期:
(1)BeanDefinition创建(Bean定义)
BeanDefinition表示Bean定义,它定义了某个Bean类型,Spring就是利用BeanDefinition来创建Bean的,比如需要利用BeanDefinition的beanClass属性来确定Bean的类型,从而实例化出来对象
(2)构造方法推断(选出构造方法)
一个Bean可以有多个构造方法,此时就需要Spring来判断到底是用哪个构造方法,这个过程是比较复杂的。通俗来说,通过构造方法推断之后确定一个构造方法后,就可以利用构造方法实例化得到一个对象了 。
(3)实例化(构造方法反射得到对象)
通过构造方法反射得到一个实例化对象,在Spring中,可以通过BeanPostProcessor机制对实例化进行干预。
(4)属性填充(属性自动填充)
实例化所得到的对象,是“不完整”的对象,“不完整”的意思是该对象中的某些属性还没有进行属性填充,也就是Spring还没有自动给某些属性赋值,属性填充就是我们通常说的自动注入,自动注入。
(5)初始化(其他属性赋值,校验)
在一个对象的属性填充之后,Spring提供了初始化机制,程序员可以用初始化机制对Bean进行自定义加工,比如可以利用InitializingBean接口来对Bean中的其他属性进行赋值,或对Bean中的某些属性进行校验
(6)初始化后(aop,生成代理对象)
初始化后是Bean创建生命周期总最后一个步骤,我们常说的AOP机制,就是在这个步骤通过BeanPostProcessor机制实现的,初始化之后得到的对象才是真正的Bean对象。
原文:https://www.cnblogs.com/cjx-0111/p/14637065.html