gpt4 book ai didi

java - Spring bean销毁方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:07:43 25 4
gpt4 key购买 nike

在实际应用程序中使用 destroy 方法的可能示例是什么?为什么正在运行的应用程序想要销毁它的 bean?如果 bean 是由 web 应用程序的 spring 容器创建的,比如 ContextLoaderListener,那么如何重新创建这些 bean,因为容器已经启动。有没有办法在不重启应用服务器的情况下重启 spring IoC 容器?

最佳答案

一个例子是 DataSource 或任何需要清理的资源。你可能有这样的事情:

@Bean(destroyMethod = "close")
DataSource dataSource() {
....
}

这在具有多个类加载器的环境中尤其重要,例如应用程序服务器以防止内存泄漏。

有时这样做是多余的,因为底层资源可能会进行自己的清理(比如作为 servlet 生命周期中 contextDestroyed 事件的一部分),但您应该始终验证这一点。

这些 Spring docs也是一个有用的引用。那里引用的例子是类似的:

<bean id="exampleInitBean" class="examples.ExampleBean" destroy-method="cleanup"/>

然后是bean类:

public class ExampleBean {

public void cleanup() {
// do some destruction work (like releasing pooled connections)
}
}

可以刷新上下文。这answer对此提供了很好的解释,以及您何时可能想要这样做。

关于java - Spring bean销毁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805422/

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