gpt4 book ai didi

spring - 通过 ConfigurableApplicationContext refresh() 重新加载 spring 应用程序上下文是否被认为是不好的做法

转载 作者:行者123 更新时间:2023-11-28 21:55:57 26 4
gpt4 key购买 nike

我们有一个托管在共享 tomcat 实例上的 Spring 应用程序。

有时我们必须重新加载 spring 应用程序上下文,但不想重新启动 Tomcat 服务器,因为其他应用程序也托管在那里。

正在通过

刷新springs应用程序上下文
  ((ConfigurableApplicationContext)applicationContext).refresh();

认为不良做法

我有什么选择?

最佳答案

可能出现的几个问题——

首先,refresh() 应该 销毁当前存在于上下文中的所有 bean(单例等)并重新创建它们,因此任何可能发生的引导都会再次发生(你放入 InitializingBean 的东西 bean 等)。这对您来说更重要,以确保您编写的所有初始化代码都可以安全地再次执行。

另一件需要关注的事情是刷新将如何影响永久内存生成 (permgen)。由于 spring 可以(并且将会)代理类并创建即时运行时类,这可能被证明是资源泄漏,因为 bean 工厂在刷新上下文时可能会创建新的运行时类。

关于spring - 通过 ConfigurableApplicationContext refresh() 重新加载 spring 应用程序上下文是否被认为是不好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7980701/

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