为什么垃圾收集器不销毁 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。