可以使属性“destroy-method”工作。
首先,即使我将不存在的方法名称输入“destroy-method”属性,
Spring初始化完成得很好(已经很奇怪!)。
接下来,当bean有一个“原型”范围时,我想它必须在应用程序之前被销毁
已关闭。这不会发生,在我的情况下根本就没有调用过。
虽然在提取这个bean之后,我可以明确地调用这个方法并且它可以完成它的工作。
你能解释为什么在我的Spring 2.5案例中从未调用过这个方法吗?
P.S。该方法存在,它是公开的,没有参数。
我认为这似乎是一项更艰巨的任务。
问题是每当关闭上下文时都会调用此destroy方法,并且 这是一种罕见的情况。
我的问题是:
的
我有一个网络应用程序。我有一个“原型” - 's bean。
我需要的是当前会话关闭时,Spring会自动调用这个destroy方法。
我可以手工完成,但有没有解决方法让Spring做这个工作?它会在会话被销毁后销毁bean,Spring可能会在销毁之前调用该bean上的方法吗?
P.S。 Spring不管理原型bean的生命周期,因此Spring不会破坏它们:)
答案 0 :(得分:8)
Spring容器不管理原型bean。
的摘录因此,虽然初始化 调用生命周期回调方法 在所有对象上,无论范围如何,在 配置原型的情况 破坏生命周期的回调是 不叫。
如果可能,请尝试请求或会话范围。
最终是HTTP会话 丢弃,作为范围的bean 特定的HTTP会话也是 丢弃。
顺便说一句:会话和请求范围仅适用于您使用网络感知ApplicationContext
,例如XmlWebApplicationContext