2016-04-30 83 views
1

在使用SingletonBeanFactoryLocator及其BeanFactoryReference我发现,当我打电话releaseBeanFactoryReference例如,一些在上下文中的豆被破坏,但一些继续生活。我的假设是他们都会被摧毁。春SingletonBeanFactoryLocator的豆破坏

这样做的后果是,下次我使用SingletonBeanFactoryLocatorBeanFactoryReference具有相同的密钥,而不是获取全新的bean,我从前面的上下文中获得一些bean。我无法找到背后的模式。这些bean是单身人士,但其中一些是重新创建的,其中一些是从旧的环境中继承下来的。为什么这样?

例如: 假设我在我的上下文中有bean A,B和C.全部是单身,B注射在A中,C注射在B中。

我得到BeanFactoryReference,得到这些豆,然后发布BeanFactoryReference

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

回答

0

这不是春季的问题。它确实清除了所有的豆子。代码中出现了一个小故障,这使得它看起来好像一些bean没有被销毁但是被重用。