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,而不是因为程序设计本身的问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)