gpt4 book ai didi

java - Spring 如何能够通知实例何时被销毁?

转载 作者:行者123 更新时间:2023-12-04 05:53:54 26 4
gpt4 key购买 nike

我正在阅读 Pro Spring 2.5 书,在第 4 章中他们谈到了生命周期回调。 Spring 如何在实例被销毁时发出通知(在我读到它仅在单例上可用之后)?使用什么机制?

最佳答案

这里没有魔法,当 BeanFactory 时调用销毁回调。/ApplicationContext被销毁(close() 方法被调用)。在桌面应用程序中,这必须手动完成,在 servlet 环境中,用于启动应用程序上下文的相同机制(通常为 ContextLoaderListener )为您处理销毁。

两个注意事项:

  • 销毁对于需要显式清理的对象(如数据库连接池(DataSource)或线程)很重要。
  • Bean 的销毁顺序与创建顺序相反。这是可以理解的:当bean A取决于 B , B必须先创建。当 bean A被摧毁,B之后必须销毁,否则A在销毁阶段将无法访问其依赖项。

  • Spring还允许您自动注册 shutdown hook自动处理关机。我不会建议,但只是为了记录:
    ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext(...)
    ctx.registerShutdownHook();

    关于java - Spring 如何能够通知实例何时被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752371/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com