Wie unterscheidet Tomcat Classloader verschiedene Webapps-Objektbereiche in derselben JVM?

Da Tomcat mehrere Webanwendungen gleichzeitig laden kann und diese Webanwendungen separat funktionieren können und sich nicht gegenseitig stören, funktionieren sie in derselben JVM. Daher bin ich sehr verwirrt darüber, wie Tomcat den Objektbereich in derselben JVM behandelt.

Zum Beispiel habe ich ein Singleton-Objekt in beiden verschiedenen Webapps, und Tomcat generiert für jedes zwei verschiedene Singleton-Objekte. Ich dachte immer, dass das Singleton-Objekt nur ein Objekt in derselben JVM hat, aber in Tomcat-JVM gibt es vielleicht zwei oder mehr.

Ich habe einige Informationen über den ClassLoader gelesen, Tomcat hat einen eigenen WebAppClassLoader zum Laden von Webapps. Bedeutet dies, dass der Objektbereich hier der ClassLoader ist, oder irre ich mich? Weiß jemand davon oder kann er mir einige Informationen zum Arbeitsspeicherlayout von Tomcat geben?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage