gpt4 book ai didi

java - Spring SingletonBeanFactoryLocator bean 销毁

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:37 26 4
gpt4 key购买 nike

在使用 SingletonBeanFactoryLocator 及其 BeanFactoryReference 时,我发现当我在 BeanFactoryReference 实例上调用 release 时,上下文中的一些 bean 被销毁,但有些仍继续存在。我的假设是它们都会被摧毁。

这样做的结果是,下次我使用具有相同键的 SingletonBeanFactoryLocatorBeanFactoryReference 时,我不会获取全新的 bean,而是会从之前的上下文中获取一些 bean。我无法找到这背后的模式。这些 bean 是单例的,但其中一些是重新创建的,其中一些是从旧上下文继承的。为什么会这样?

示例:假设我的上下文中有 Bean A、B 和 C。都是单例,A中注入(inject)B,B中注入(inject)C。

我获取BeanFactoryReference,获取这些bean,然后释放BeanFactoryReference

然后我再次得到BeanFactoryReference; beans A 和 B 是新的,但 C 来自旧上下文(我打印了它们的系统哈希代码来检查它)。

最佳答案

这在 Spring 中不是问题。它确实清除了所有的 bean 。使用此方法的代码中存在一个故障,这使得某些 bean 看起来好像没有被销毁而是被重用了。

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

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