生命周期:从创建到消亡的完整过程。
bean生命周期:bean从创建到销毁的整体过程。
bean生命周期控制:在bean创建后到销毁前做的一些事情。
(基于入门案例)
方法一:
首先在对应要控制生命周期的bean中写对应的init()和destory()方法。
然后,要在配置文件中配置对应的初始化和销毁的方法。
在bean标签中的init-method=”init” destroy-method=”destory”.

运行时发现并没有运行destory()方法。
因为程序执行完之后java虚拟机直接退出,没有bean销毁的机会。要执行destory()方法就要把IOC容器关闭。
此时就需要调用ClassPathXmlApplicationContext中的close()方法将IOC容器关闭。
当然这种关闭方式比较暴力,还有另外一个方法也能关闭,同时再关闭之前会执行完所有的代码,这就是关闭钩子registerShutdownHook()。会在关闭虚拟机之前把容器关掉。并且关闭钩子在任何时间都起作用。
方法二:
在Service中实现接口来控制生命周期。

Bean生命周期
(1)初始化容器
创建对象(内存分配)
执行构造方法。
执行属性注入(set操作)。
执行bean初始化方法。
(2)使用bean
执行业务操作。
(3)关闭/销毁容器
执行bean销毁方法。
Bean销毁时机
容器关闭前触发bean销毁
关闭容器方式:
(1)手工关闭容器
(2)注册关闭钩子,在虚拟机退出前先关闭容器再退出虚拟机。
