1077 Stimmen

Wie konfiguriere ich den Port für eine Spring Boot-Anwendung?

Wie konfiguriere ich den TCP/IP-Port, der von einer Spring Boot-Anwendung gehört wird, so dass er nicht den Standardport 8080 verwendet?

1583voto

Paul Verest Punkte 55549

Wie in der Dokumentation erwähnt, entweder server.port als Systemeigenschaft über die Befehlszeilenoption an die JVM setzen -Dserver.port=8090 oder application.properties in /src/main/resources/ hinzufügen mit

server.port=8090

Für einen zufälligen Port verwenden Sie:

server.port=0

Fügen Sie ebenfalls application.yml in /src/main/resources/ mit folgendem Inhalt hinzu:

server:
  port: 8090

275voto

anataliocs Punkte 9981

Es gibt zwei Hauptwege, um den Port im Embedded Tomcat in einer Spring Boot-Anwendung zu ändern.

Bearbeiten Sie die application.properties

Zunächst können Sie die Datei application.properties im /resources-Ordner ausprobieren:

server.port = 8090

Anwendungsdatei

Ändern Sie eine VM-Option

Der zweite Weg, wenn Sie vermeiden möchten, Dateien zu ändern und etwas zu überprüfen, das Sie nur lokal benötigen, können Sie eine vm-Argument verwenden:

Gehen Sie zu Run -> Edit Configurations -> VM-Optionen

-Dserver.port=8090

Port mit einer VM-Option ändern

Zusätzlich, wenn Sie weitere Informationen benötigen, können Sie den folgenden Blog-Beitrag hier einsehen: Ändern des Ports in einer Spring Boot-Anwendung

215voto

tan9 Punkte 3530

Da Spring Boot verschiedene Mechanismen zur Externalisierung von Konfigurationen bereitstellt (durch verschiedene PropertySource-Implementierungen und/oder Prozessoren, die in das Environment-Objekt eingebunden sind), können Sie Eigenschaften außerhalb Ihres Jar-Archivs über die folgenden Methoden festlegen:

  1. Geben Sie die Eigenschaft als Anwendungsargument über die Befehlszeile an

    java -jar  --server.port=7788
  2. Aus der Eigenschaft in SPRING_APPLICATION_JSON (Spring Boot 1.3.0+)

    • Legen Sie eine Umgebungsvariable in einem U*IX-Shell fest:

      SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar 
    • Verwenden Sie ein Java-Systemproperty:

      java -Dspring.application.json='{"server.port":7788}' -jar 
    • Geben Sie die Eigenschaft als Befehlszeilenargument an:

      java -jar  --spring.application.json='{"server.port":7788}'
  3. Legen Sie ein JVM-Systemproperty fest

    java -Dserver.port=7788 -jar 
  4. Legen Sie eine OS-Umgebungsvariable fest

    • U*IX Shell

      SERVER_PORT=7788 java -jar 
    • Windows

      SET SERVER_PORT=7788
      java -jar 
  5. Platzieren Sie die Eigenschaft in der ./config/application.properties Konfigurationsdatei

    server.port=7788

    und führen Sie aus:

     java -jar 
  6. Platzieren Sie die Eigenschaft in der ./config/application.yaml

    server:
        port: 7788

    und führen Sie aus:

     java -jar 
  7. Platzieren Sie die Eigenschaft in der ./application.properties

    server.port=7788

    und führen Sie aus:

     java -jar 
  8. Platzieren Sie die Eigenschaft in der ./application.yaml

    server:
        port: 7788

    und führen Sie aus:

     java -jar 

Sie können alle oben genannten Methoden kombinieren, wobei die früheren Konfigurationen in der Liste Vorrang vor den späteren haben.

Zum Beispiel:

SERVER_PORT=2266 java -Dserver.port=5566 -jar  --server.port=7788

Der Server wird gestartet und auf Port 7788 hören.

Dies ist sehr nützlich, um Standardwerte in PropertySources mit niedrigerer Priorität bereitzustellen (und normalerweise im Archiv verpackt oder im Quellcode codiert sind), und sie dann in der Laufzeitumgebung zu überschreiben. Das ist die Designphilosophie von Spring Boot:

Seien Sie von Anfang an entschieden, aber weichen Sie schnell aus, wenn die Anforderungen von den Standards abweichen.


Die Umwandlung von SERVER_NAME in server.name wurde durch Relaxed Binding durchgeführt.

141voto

makerj Punkte 1991

Sie können den Port auch programmgesteuert konfigurieren.

Für Spring Boot 2.x.x:

@Configuration
public class CustomContainer implements WebServerFactoryCustomizer {
  public void customize(ConfigurableServletWebServerFactory factory){
    factory.setPort(8042);
  }
}

Für ältere Versionen:

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8012);
        });
    }
}

114voto

itwarilal Punkte 1324

Wenn Sie es lokal ausführen möchten, verwenden Sie dies -

mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'

Ab Spring Boot 2.0 funktioniert folgender Befehl:

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085

Hinweise waren auf:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X