如果处在一个非WBE的应用环境下,为了能让Spring容器优雅的关闭,并调用singleton Bean上的相应析构回调方法,则需要在JVM里注册一个关闭钩子(shutdown hook)。
为了注册关闭钩子,需要调用AbstractApplicationContext中提供的registerShutdownHoo()方法。
代码:
public class BeanTest
{
public static void main(String[] args)
{
//以CLASSPATH路径下的配置文件创建ApplicationContext
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
//获取容器中的Bean实例
Person p = ctx.getBean("chinese",Person.class);
p.useAxe();
//为Spring容器注册关闭钩子
ctx.registerShutdownHook();
}
}