huangp10 2013-08-09 09:11 采纳率: 0%
浏览 1746

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方法???

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-12 09:46
    关注

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


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

    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程