java - Tomcat - 动态加载类的垃圾回收

标签 java tomcat garbage-collection

我是一名编程语言研究人员,我正在使用动态创建/加载的类 实现多阶段元编程。

我正在考虑使用 tomcat 服务器来公开我的作品,所以我将编写一个 Servlet,它创建 java 类并加载它们(大量)。

要正确地对此类创建的类进行垃圾回收,必须对相应的类加载器进行垃圾回收。 这是我作为Servlet编写者的责任还是tomcat框架的责任? 如果不是tomcat框架的责任,这是一个开放的安全问题吗?

谢谢!

最佳答案

Tomcat 在取消部署应用程序时取消引用 Web 应用程序类加载器及其创建的对象(servlet、过滤器、监听器……)。这应该使 Web 应用程序类加载器及其所有类和对象都符合垃圾收集的条件(除非您有类加载器泄漏)。

我想到了两种可能被视为安全问题的可能性。首先,如果您有类加载器泄漏,一个 Web 应用程序可能会从运行在同一 Tomcat 实例中的另一个 Web 应用程序访问类。其次,如果您允许用户通过您的 Web 应用程序创建类,这显然会成为一个问题。

关于java - Tomcat - 动态加载类的垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482048/

相关文章:

java - 独立tomcat中的Spring Boot日志文件以XML格式保存

java - Tomcat 7 是否改善了 Tomcat 6 的 Classloader 泄漏情况?

java - 我们是否可以手动触发 Full GC,或者使用堆的某个百分比的参数来触发 Full GC,这是建议的吗?

c# - 垃圾收集如何决定变量的生成

java - 如何更改 JPA - Spring Framework 数据库中的顺序

hadoop - 从 Spark 作业创建 FS 的快照

java - oracle.sql.DATUM 已弃用。它的替代品是什么?

java - CF推送-系统找不到指定的文件

tomcat - 如何使用 JMX 从主机连接到 Docker 机器中的 Docker 容器?

ruby 循环引用示例