Die Antwort hängt von Ihrem Container ab und hängt vom Container ab. Im Allgemeinen wird / WEB-INF / classes den Klassen in einer JAR-Datei in WEB-INF / lib vorgezogen.
Für Tomcat lautet die Reihenfolge wie folgt:
Aus der Perspektive einer Webanwendung wird daher das Laden von Klassen oder Ressourcen in den folgenden Repositorys in dieser Reihenfolge angezeigt:
Wenn Sie jedoch einen anderen Container verwenden, müssen Sie die Dokumentation für diesen Server lesen.
Es gibt also nur einen Weg, das herauszufinden. Ich habe einen Test geschrieben :)
%Vor% Mein Befund war, dass in TestFoo.java
druckt
Und für TestFooInWeb.java
druckt
Beide Tests haben dies in der Testklasse:
%Vor% Also alles am Ende, ich stehe korrigiert. Sie können eine völlig andere Klasse laden und alle Jar-Dateien werden diese neue Klasse verwenden. Das macht Sinn, weil ClassLoader
zuerst auf das Klassenverzeichnis schaut. Ich bin nicht sicher, ob ich damit einverstanden bin, weil es verdächtig klingt und ich Sicherheitsklassen überschreiben kann.