我们可以取消部署不再需要的Spring容器托管bean吗?

时间:2012-12-04 06:37:59

标签: spring

我从Spring容器中获取一个bean说

MyClass obj1 = Context.getBean("obj1");

使用obj1之后,我确信在我的应用程序的其余部分中不需要它。

那么有没有办法让Spring容器销毁bean。 Atleast给Spring容器提示它不再需要了,我决定是否销毁它(与垃圾收集类似)?

2 个答案:

答案 0 :(得分:1)

使“obj1”成为原型范围的bean。然后Spring会在每次请求它时创建一个新的实例(确保你没关系),然后它将不再管理实例,所以当你完成它并释放所有引用时它可以被垃圾收集。 原型范围类似于new,只为您提供Spring配置的bean。

答案 1 :(得分:0)

我认为你不可能告诉Spring容器销毁那个bean。如果您注意到Spring框架创建的大多数bean都是Singleton,每次将它注入代码时都应该为bean提供相同的实例。单身本质应该贯穿于应用程序的生命中,因此它不会被破坏。