spring ctx.getBean()问题

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

HService h = (HService) ctx.getBean("service");

在myeclipse中执行单步调试 ,在运行到 ctx.getBean("service"); 这件按 f6

进入到AbstractApplicationContext 类 的 protected void destroyBeans() {
getBeanFactory().destroySingletons();
} 中 方法 。。

求解 为什么进入的是destroyBeans方法,而不是getBean方法???

在运行到ctx.getBean("service")时,如果 ClassPathXmlApplicationContext 对象已经关闭了或者已经刷新了,那么它会调用 AbstractApplicationContext 中的 destroyBeans() 方法来清除并销毁已经创建的 bean。而不是执行 getBean方法


因此,这也可能是因为在上下文被刷新或关闭之后,你再次试图获取bean,而不是因为程序设计本身的问题。