- 這取決於如何你正在實例化它。我是一個web應用程序,這通常是在上下文關閉時完成的。在命令行中,您必須特別關閉上下文(通過「AbstractApplicationContext」上的「close」方法)
- 與超出範圍的任何其他內容一樣不知道「close」方法是否是終結器階段的一部分或者不是,我希望終結器會觸發破壞階段
- 正如別人所說,不要直接使用BeanFactory創建一個ApplicationContext對於Web應用程序最常用的方式是ContextLoaderListener,對於命令行程序是的ClassPathXmlApplicationContext。
//保持一個特定的類型,所以以後我們可以稱之爲「親密」的方法,因爲 //它不是ApplicationContext接口本身的一部分。 ClassPathXmlApplicationContext的上下文= 新的ClassPathXmlApplicationContext(新的String [] {「的applicationContext.xml});
再後來就關閉它:
context.close();
對於web應用:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
感謝Matt。 (1)和(3)非常有幫助。對於(2),我有一些真正的擔憂。請參閱更新。 – Leo
如果close()不是終結器的一部分,那麼當Web應用程序上下文關閉或JVM關閉時,誰觸發此方法? – Leo