我从 Spring 容器中得到一个 bean 说
MyClass obj1 = Context.getBean("obj1");
使用 obj1 后,我确信我的应用程序的其余部分将不再需要它。
那么有没有办法让Spring容器销毁这个bean。至少向 Spring 容器提示不再需要它,并且我决定是否销毁它(类似于垃圾收集)?
我从 Spring 容器中得到一个 bean 说
MyClass obj1 = Context.getBean("obj1");
使用 obj1 后,我确信我的应用程序的其余部分将不再需要它。
那么有没有办法让Spring容器销毁这个bean。至少向 Spring 容器提示不再需要它,并且我决定是否销毁它(类似于垃圾收集)?
使“obj1”成为原型范围的 bean。然后 Spring 将在您每次请求时创建它的一个新实例(确保您对此感到满意),然后它将不再管理该实例,因此当您完成它并释放所有引用时,它可以被垃圾收集。原型范围就像new
,只给你 Spring 配置的 bean。
我认为您不可能告诉 Spring 容器销毁该 bean。如果您注意到 Spring 框架创建的大多数这些 beanSingleton
都应该在每次将其注入代码时为您提供相同的 bean 实例。单例本质上应该在应用程序的整个生命周期中都存在,因此它不能被破坏。