Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Java应用程序作为服务运行,如何关闭Spring上下文?_Java_Spring_Dependency Injection_Heap - Fatal编程技术网

如果Java应用程序作为服务运行,如何关闭Spring上下文?

如果Java应用程序作为服务运行,如何关闭Spring上下文?,java,spring,dependency-injection,heap,Java,Spring,Dependency Injection,Heap,我编写了一个java应用程序,打算作为服务运行,它使用Spring进行DI。 由于此应用程序正在“永远”运行,它将永远无法关闭Spring上下文 这是否会导致长期问题?对于这些情况,用标准方式创建对象是否比使用Spring注入对象更好 我还可以看到堆使用率在缓慢增加,我不确定这是否是原因 谢谢。如果应用程序中没有内存泄漏,这应该不会是问题 如果您看到堆不断增加,那么可能与Spring无关 如果您不知道是什么导致了内存消耗,那么我建议查看一些JVM工具,例如JVisualVM是JDK中可用的一个选

我编写了一个java应用程序,打算作为服务运行,它使用Spring进行DI。 由于此应用程序正在“永远”运行,它将永远无法关闭Spring上下文

这是否会导致长期问题?对于这些情况,用标准方式创建对象是否比使用Spring注入对象更好

我还可以看到堆使用率在缓慢增加,我不确定这是否是原因


谢谢。

如果应用程序中没有内存泄漏,这应该不会是问题

如果您看到堆不断增加,那么可能与Spring无关


如果您不知道是什么导致了内存消耗,那么我建议查看一些JVM工具,例如JVisualVM是JDK中可用的一个选项。有了它,您可以轻松地检查线程正在做什么,内存中哪些对象正在增长

如果Spring应用程序配置为服务,这通常意味着它的组件配置为无状态单例,因此Spring可以继续运行,只要它需要,而不刷新任何内容,因为它不会分配更多的组件。如果您的堆使用率持续增长,这通常意味着您的问题,而不是Spring的问题,正如如何将应用程序配置为服务一样?Spring方面有什么变化吗?不是真的,这通常只意味着Spring组件本身就是无状态服务。