Spring-Boot-Klassenpfad

9

In der Spring Boot's docs hier , um statische Inhalte zu bedienen, heißt es:

  

Standardmäßig wird Spring Boot statischen Inhalt aus einem Verzeichnis bereitstellen   genannt / static (oder / public oder / resources oder / META-INF / resources) in   der Klassenpfad .

Ich habe festgestellt, dass alle Inhalte im Verzeichnis:

%Vor%

wird in den Klassenpfad kopiert, damit ich meinen statischen Inhalt einfügen kann:

%Vor%

und alles wird gut funktionieren und ich bin glücklich, da ich meinen statischen Inhalt im Verzeichnis src haben kann.

Aber ich habe einige Fragen dazu:

  1. Warum heißt die Dokumentation nicht, statischen Inhalt in src/main/resources/static zu setzen, anstatt über den Klassenpfad zu sprechen (ich denke, das ist ein wenig verwirrend)?
  2. Ist es gut davon auszugehen, dass der Inhalt in src/main/resources/ immer in den Klassenpfad kopiert wird?
  3. Gibt es eine offizielle Dokumentation von Spring Boot, die erklärt, was ich im Klassenpfad anders als Java-Klassen und -Pakete finden soll (bisher weiß ich nur, dass ich den gesamten Inhalt von src/main/resources/ finden kann)?
Andrea 08.12.2015, 16:01
quelle

2 Antworten

7

/src/main/resources ist eine Maven Projektstrukturkonvention. Es ist ein Pfad innerhalb Ihres Projekts, in dem Sie Ressourcen platzieren. Während des Erstellungsschritts nimmt Maven Dateien dort auf und legt sie an die richtige Stelle, damit Sie sie in Ihrem Klassenpfad für die Laufzeit verwenden können, z. B. in einer ausführbaren Datei .jar , einem physischen Speicherort im Klassenpfad (mit java 's -cp -Option) usw.

Ich könnte meine Anwendung selbst oder mit einem anderen Build-Tool erstellen. In diesem Fall wäre /src/main/resources nicht vorhanden. Es ist jedoch beabsichtigt, dass der Klassenpfad derselbe ist, d. um die gleichen Ressourcen und .class Dateien zu enthalten.

Die Spring-Boot-Dokumentation spricht über den Klassenpfad, da er keine Annahmen über die Einrichtung Ihres Projekts machen sollte.

    
Sotirios Delimanolis 08.12.2015, 16:42
quelle
3

Der Klassenpfad enthält auch zusätzliche Bibliotheken (JARs), die auch einen static -Ordner enthalten können, der dann zum Bereitstellen statischer Ressourcen einbezogen wird. Wenn also die Dokumentation nur den Ordner src/main/resources/static enthält, wäre dieser unvollständig.

Ad 2: Solange Sie sich nicht mit der Maven-Standardkonfiguration anlegen, können Sie davon ausgehen.

Ad 3: Vielleicht beginnen Sie mit der offiziellen Oracle Dokumentation: Ссылка . Hinweis: Natürlich ist es nicht nur der Inhalt des Ressourcenordners, der sich im Klassenpfad befindet, sondern natürlich auch alle kompilierten Klassen, daher der Name.

    
dunni 08.12.2015 16:22
quelle