1.实例化Bean(分配内存空间)
2.设置Bean的属性(进行依赖注入,将依赖的Bean赋值到当前类的属性上)
3.Bean的初始化
各种通知:如BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法;
初始化前置方法;
执行初始化方法(设置了就会执行,不设置不会执行)
注解方式:@PostConstruct
xml方式:init-method方法
初始化后置方法。
4.使用Bean
5.销毁Bean
我们可以将Bean的生命周期比作房子的生命周期:
第一步要买地(实例化Bean,分配内存空间);
第二步要盖房子(设置Bean的属性),但是此时还只是的毛坯房;
第三步要装修(Bean的初始化):装修时要先通知装修公司(各种通知);装修前要进行些准备工作,比如买油漆,家具(初始化前置方法);装修公司进行装修(执行初始化方法);装修完后付钱(初始化后置方法);
第四步要住进去(使用Bean);
第五步产权到期要销毁(销毁Bean)。
模拟Bean的生命周期:
为什么先赋值属性再进行初始化:
因为在Bean初始化时,可能会用到Bean里面的方法,如:
所以要先赋值属性再进行初始化。
@PostConstruct与@PreDestroy的作用:
@PostConstruct:@PreDestroy初始化方法。
@PreDestroy:@PreDestroy销毁方法