说明:
(1)本篇博客主要根据案例阐述对象的声明周期;
(2)其中,比较重要的是注意下这个对应关系:
(3)还有就是调用【registerShutdownHook()】销毁IoC容器;
目录
在Order类中添加destroy()方法,并设置的destroy-methd属性指向这个方法;
一:bean对象生命周期说明
bean的生命周期:
说明:
(1)第一步:【IoC容器准备初始化,解析applicationContext.xml文件】:先解析applicationContext.xml文件,看下当前xml中,需要创建哪些对象,需要为哪些对象注入什么属性。即,这一步,是先看看情况,确定要做什么;
(2)第二步:【对象实例化,执行构造方法】:IoC根据applicationContext.xml配置文件中的内容,自动利用反射技术,去实例化对应的bean对象;同时,基于java的规则,在实例化对应bean对象的时候,对应的构造方法也会执行。即,这一步,仅仅是得到了对象;
(3)第三步:【为对象注入属性】:当获取了对象后,根据解析applicationContext.xml文件,IoC容器会知道,要为刚创建的对象注入哪些属性,IoC容器完成对象属性注入的工作。即,这一步,是IoC容器确定,要为对象注入哪些属性,并给对象设置好这些属性;
(4)第四步:【调用init-method初始化方法】:当IoC容器为对象注入属性后,接下来IoC容器会自动的调用对象的init-method方法,来完成一些剩余的工作,彻底完成对象的初始化工作。即,这一步,是在对象注入属性之后,通过init-method()方法彻底完成对象的初始化工作;
(5)第五步:【IoC容器初始化完毕】:经过上面的步骤后,IoC容器的初始化工作就完成了;
(6)第六步:【执行业务代码】:当IoC容器初始化完成后,那些对象也都创建好了,就可以通过代码调用这些对象的业务代码了;
(7)第七步:【IoC容器准备销毁】:如果不想要IoC容器了,就可以调用对应的方法,去启动销毁IoC容器;
(8)第八步:【调用destroy-method方法,释放资源】:IoC容器开始销毁时,IoC容器就会调用配置文件中声明的destroy-method方法,去释放对应的资源;
(9)第九步:【IoC容器销毁完毕】:当所有bean对象的destroy-method()方法执行完后,IoC容器就销毁完毕了;