Wie konfiguriere ich den TCP/IP-Port, der von einer Spring Boot-Anwendung gehört wird, so dass er nicht den Standardport 8080 verwendet?
Antworten
Zu viele Anzeigen?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
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
Ä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
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
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:
-
Geben Sie die Eigenschaft als Anwendungsargument über die Befehlszeile an
java -jar --server.port=7788
-
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}'
-
-
Legen Sie ein JVM-Systemproperty fest
java -Dserver.port=7788 -jar
-
Legen Sie eine OS-Umgebungsvariable fest
-
U*IX Shell
SERVER_PORT=7788 java -jar
-
Windows
SET SERVER_PORT=7788 java -jar
-
-
Platzieren Sie die Eigenschaft in der
./config/application.properties
Konfigurationsdateiserver.port=7788
und führen Sie aus:
java -jar
-
Platzieren Sie die Eigenschaft in der
./config/application.yaml
server: port: 7788
und führen Sie aus:
java -jar
-
Platzieren Sie die Eigenschaft in der
./application.properties
server.port=7788
und führen Sie aus:
java -jar
-
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.
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);
});
}
}
- See previous answers
- Weitere Antworten anzeigen