So ändern Sie den Standardport im Spring Boot
1. Einführung
Spring Boot bietet sinnvolle Standardeinstellungen für viele Konfigurationseigenschaften. Trotzdem müssen wir diese manchmal mit unseren fallspezifischen Werten anpassen.
Ein häufiger Anwendungsfall istchanging the default port for the embedded server.
In diesem kurzen Tutorial werden wir verschiedene Möglichkeiten behandeln, um dies zu erreichen.
Weitere Lektüre:
Eigenschaften mit Feder und Spring Boot
Lernprogramm zum Arbeiten mit Eigenschaftendateien und Eigenschaftswerten in Spring.
Kontextpfad für Spring Boot-Änderung
Erfahren Sie, wie Sie den Kontextpfad in Ihrer Spring Boot-Anwendung auf verschiedene Arten ändern können
2. Verwenden von Eigenschaftendateien
Die schnellste und einfachste Möglichkeit zum Anpassen von Spring Boot besteht darin, die Werte der Standardeigenschaften zu überschreiben.
Für den Server-Port möchten wir die Eigenschaftserver.port ändern.
Standardmäßig startet der eingebettete Server an Port 8080. Let’s see how we can provide a different value in an application.properties file:
server.port=8081
Nun startet der Server auf Port 8081.
Ebenso können wir dasselbe tun, wenn wir eineapplication.yml-Datei verwenden:
server:
port : 8081
Beide Dateien werden von Spring Boot automatisch geladen, wenn sie im Verzeichnissrc/main/resourceseiner Maven-Anwendung abgelegt werden.
2.1. Umgebungsspezifische Ports
Wenn wir eine Anwendung haben, die in verschiedenen Umgebungen bereitgestellt wird, möchten wir möglicherweise, dass sie auf verschiedenen Ports auf jedem System ausgeführt wird.
Wir können dies leicht erreichen, indem wir den Ansatz der Eigenschaftendateien mit Spring-Profilen kombinieren. Specifically, we can create a property file for each environment.
Zum Beispiel haben wir eineapplication-dev.properties-Datei mit dem Inhalt:
server.port=8081
Dann fügen wir eine weitereapplication-qa.properties-Datei mit einem anderen Port hinzu:
server.port=8082
Die Konfiguration der Eigenschaftendateien sollte in den meisten Fällen ausreichen.
Es gibt jedoch auch andere Optionen für dieses Ziel. Lassen Sie uns diese also ebenfalls untersuchen.
3. Programmatische Konfiguration
Wir können den Port programmgesteuert konfigurieren, indem wir entweder beim Starten der Anwendung die spezifische Eigenschaft festlegen oder die Konfiguration des eingebetteten Servers anpassen.
Lassen Sie uns zunächst sehen, wie Sie die Eigenschaft in der Hauptklasse@SpringBootApplicationfestlegen:
@SpringBootApplication
public class CustomApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(CustomApplication.class);
app.setDefaultProperties(Collections
.singletonMap("server.port", "8083"));
app.run(args);
}
}
Als Nächstes müssen wir zum Anpassen der Serverkonfiguration dieWebServerFactoryCustomizer-Schnittstelle implementieren:
@Component
public class ServerPortCustomizer
implements WebServerFactoryCustomizer {
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(8086);
}
}
Beachten Sie, dass dies für die Spring Boot 2.x-Version gilt.
Für Spring Boot 1.x können wir auf ähnliche Weise dieEmbeddedServletContainerCustomizer-Schnittstelle implementieren.
4. Verwenden von Befehlszeilenargumenten
Beim Packen und Ausführen unserer Anwendung als JAR können wir das Argumentserver.portmit dem Befehljava festlegen:
java -jar spring-5.jar --server.port=8083
Oder mit der entsprechenden Syntax:
java -jar -Dserver.port=8083 spring-5.jar
5. Reihenfolge der Bewertung
Lassen Sie uns abschließend die Reihenfolge betrachten, in der diese Ansätze von Spring Boot bewertet werden.
Grundsätzlich ist die Konfigurationspriorität:
-
Embedded Server Konfiguration
-
Kommandozeilenargumente
-
Eigenschaftendateien
-
Hauptkonfiguration von@SpringBootApplication
6. Fazit
In diesem kurzen Tutorial haben wir gesehen, wie der Serverport in einer Spring Boot-Anwendung konfiguriert wird.
Der Quellcode für die Beispiele istover on GitHub verfügbar.