Als ich das letzte Mal MessageSource-bezogen untersuchte, musste ich die Eigenschaftendatei, die die Nachricht verwaltet, außerhalb des Spring Boot-Projekts ablegen. Spring Message Source neu laden
Zu dieser Zeit, als ich untersuchte, wie man mit Spring Boot einen Klassenpfad hinzufügt, gab es mehrere Methoden, daher werde ich sie zusammenfassen.
Die Einstellungen können je nach Startmethode unterschiedlich sein, und es kann verschiedene Einstellungsmethoden geben.
mvn spring-boot: run
Dies ist der Fall, wenn Sie eine Anwendung mit dem Spring Boot Maven Plugin starten. Sie können es auf eine der folgenden Arten hinzufügen.
Sie können mehrere durch Kommas getrennte Pfade angeben.
mvn spring-boot:run -Dspring-boot.run.folders=[Pfad]
pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<folders>
<folder>[Pfad]</folder>
</folders>
</configuration>
</plugin>
Beim Erstellen eines ausführbaren Jar und dessen Ausführung mit dem Befehl java
.
Übrigens wird der Klassenpfad nicht hinzugefügt, selbst wenn Sie Folgendes tun.
Schlechtes Beispiel
java -cp [Pfad] -jar jarFile
Der Befehl "java" ignoriert "-cp", wenn "-jar" angegeben ist.
Sie können einen Klassenpfad hinzufügen, indem Sie "PropertiesLauncher" als Hauptklasse verwenden.
Wenn Sie das Spring Boot Maven Plugin verwenden, können Sie den "Properties Launcher" verwenden, indem Sie "layout" auf "ZIP" oder "DIR" setzen.
pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
</configuration>
</plugin>
In Bezug auf die Einstellungen für den hinzuzufügenden Klassenpfad gibt es verschiedene Einstellungsmethoden. Sie sind in absteigender Reihenfolge der Priorität aufgeführt.
Sie können den Klassenpfad beim Start mit -Dloader.path
hinzufügen.
java -Dloader.path=[Pfad] -jar jarFile
Übrigens habe ich es wie "-Dloader.path = [path]" nach "-jar" ausgeführt und es hat nicht funktioniert, also war ich eine Weile besorgt.
Der Befehl java
muss in der Reihenfolge java [-options] -jar jarFile [args ...]
angegeben werden.
Auf die Umgebungsvariable LOADER_PATH
setzen.
Sie können es starten, indem Sie den Befehl java
normal verwenden.
windows
set LOADER_PATH=[Pfad]
linux
export LOADER_PATH=[Pfad]
Platzieren Sie die Konfigurationsdatei direkt unter Ressourcen mit dem Dateinamen "loader.properties".
Dies ist auch in Ordnung, wenn Sie den Befehl java
normal verwenden, um ihn zu starten.
loader.properties
loader.path=[Pfad]
Der Dateiname und der Speicherort können durch Einstellen geändert werden.
Sie können den Klassenpfad hinzufügen, indem Sie in der Manifestdatei "Loader-Path" angeben.
Beginnen Sie normalerweise mit dem Befehl java
.
Wenn Sie das Maven Jar Plugin verwenden, können Sie Folgendes einstellen.
pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Loader-Path>[Pfad]</Loader-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
Es gibt verschiedene Möglichkeiten, Executable Jar zu verwenden, aber ich habe mich gefragt, ob Systemeigenschaften oder Umgebungsvariablen, die beim Start festgelegt werden können, gut sind.
Im Fall einer Eigenschaftendatei oder Manifestdatei ist der Pfad in festem Code geschrieben, daher halte ich es für schwierig, dies zu tun, wenn die Einstellungen für jede Umgebung unterschiedlich sind.
Sie können auch eine Eigenschaftendatei für jede Umgebung erstellen und den Namen der Eigenschaftendatei beim Start in den Systemeigenschaften angeben.
Recommended Posts