So ändern Sie den Standardport in Spring Boot

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.

Read more

Kontextpfad für Spring Boot-Änderung

Erfahren Sie, wie Sie den Kontextpfad in Ihrer Spring Boot-Anwendung auf verschiedene Arten ändern können

Read more

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.