对于目前阶段学习目的是快速掌握spring的用法, 因此此处仅仅记录使用观察bean生命周期的几个方法。这里一共分为3个步骤
步骤①自定义好初始化的操作
步骤② 在配置文件中设置好回调函数
其实就是跟spring讲一下,我哪个是初始化的,哪一个是销毁操作的
<!--init-method:设置bean初始化生命周期回调函数-->
<!--destroy-method:设置bean销毁生命周期回调函数,仅适用于单例对象-->
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" init-method="init" destroy-method="destory"/>
步骤三 设置关闭容器的钩子
- 首先在获取ioc容器的时候就要使用下面的对象
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
- 其次是你要注册关闭钩子函数,在虚拟机退出之前回调此函数,关闭容器,或者直接暴力关闭容器。那必然推荐第一种。
//注册关闭钩子函数,在虚拟机退出之前回调此函数,关闭容器
ctx.registerShutdownHook();
//关闭容器
//ctx.close();
下面是整体的代码:
public class AppForLifeCycle {
public static void main( String[] args ) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
bookDao.save();
//注册关闭钩子函数,在虚拟机退出之前回调此函数,关闭容器
ctx.registerShutdownHook();
//关闭容器
// ctx.close();
}
}
效果
只有完整的关闭容器才能看到销毁过程。下面是结果。