gpt4 book ai didi

java - PMD规则 "Use Proper Class Loader"解释?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:55:53 26 4
gpt4 key购买 nike

有如下PMD规则:

Use Proper Class Loader (Critical)

In J2EE getClassLoader() might not work as expected. Use Thread.currentThread().getContextClassLoader() instead.

可以稍微解释一下他们在想什么吗?这里的“J2EE”环境到底是什么意思?

最佳答案

J2EE环境是指Java企业版。在这里,您不会将程序作为独立应用程序在 JVM 上运行,而是让 JEE 应用程序服务器(例如 Glassfish 或 Tomcat)为您运行它。

应用程序服务器提供了许多不同的方式来运行您的程序,例如它们提供并发和分布式执行。 AppServers 玩类加载器,有时有一个层次结构,例如 EAR(Enterprise ARchive)有一个,而 EAR 内部的 WAR(Web ARchive)有一个不同的层次结构。因此,无法确保您始终通过 getClassLoader() 调用获得正确的 ClassLoader。使用 Thread.currentThread().getContextClassLoader(),您将始终获得加载您的应用程序的 ClassLoader。

(注意:这并不完全正确,一些应用程序使用 ContextClassLoader(如 Spring、OSGi)来欺骗。不过,这是获得正确的 ClassLoader 的最佳方式)。

关于java - PMD规则 "Use Proper Class Loader"解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com