为什么垃圾收集器不销毁 spring 容器
why garbage collector doesnot destroy spring container
我正在 class 中加载我的 spring 上下文,如下所示:
public class Loader {
public static void main(String args[]){
final ConfigurableApplicationContext context =
new FileSystemXmlApplicationContext(
new String[] { serializationSpringContextPath }
);
System.out.println("main over");
}
}
主要方法完成后的事件上下文仍然存在。为什么垃圾收集器不是
收藏了吗?
如果您创建了一个 ConfigurableApplicationContext
,那么您需要在完成后对其调用 close()
。否则,上下文中的 bean 以及上下文本身将不会释放任何正在持有的资源 - 包括线程。
例如,您上下文中创建非守护线程的任何 bean 都会阻止您的程序关闭。
顺便说一句,这与垃圾回收无关。 java 程序将在所有非守护线程完成执行后立即终止,GC 或没有 GC。
我正在 class 中加载我的 spring 上下文,如下所示:
public class Loader {
public static void main(String args[]){
final ConfigurableApplicationContext context =
new FileSystemXmlApplicationContext(
new String[] { serializationSpringContextPath }
);
System.out.println("main over");
}
}
主要方法完成后的事件上下文仍然存在。为什么垃圾收集器不是 收藏了吗?
如果您创建了一个 ConfigurableApplicationContext
,那么您需要在完成后对其调用 close()
。否则,上下文中的 bean 以及上下文本身将不会释放任何正在持有的资源 - 包括线程。
例如,您上下文中创建非守护线程的任何 bean 都会阻止您的程序关闭。
顺便说一句,这与垃圾回收无关。 java 程序将在所有非守护线程完成执行后立即终止,GC 或没有 GC。