Warum Ihr Spring Boot nicht auf Port 8080 lauscht?
\nSie starten Ihre erste Spring Boot-Anwendung, sehen das ersehnte Banner in der Konsole, öffnen den Browser – und erhalten „Connection refused“. Kommt Ihnen das bekannt vor? Meistens liegt das Problem darin, dass Port 8080 bereits von einem anderen Prozess belegt ist (z. B. Skype, Docker oder einer zweiten Instanz Ihrer eigenen Anwendung). Oder Sie müssen drei Microservices auf einer Maschine starten, die alle denselben Port beanspruchen.
\nIn diesem Artikel zeigen wir Ihnen alle wichtigen Methoden zur Port-Konfiguration in Spring Boot – von den einfachsten bis hin zu produktionsreifen Ansätzen. Sie erfahren, wie Sie den Port über Konfigurationsdateien, Umgebungsvariablen, Kommandozeilenargumente und sogar programmatisch überschreiben. Am Ende gibt es eine Checkliste, welche Methode sich für welche Situation am besten eignet.
\n\nMethode 1: application.properties – der Klassiker
\nDie gängigste und intuitivste Methode. Fügen Sie in der Datei src/main/resources/application.properties einfach eine Zeile hinzu:
server.port=9090\nFertig. Nach dem Neustart lauscht Ihre Anwendung auf Port 9090. Um zu Port 8080 zurückzukehren, löschen oder kommentieren Sie die Zeile einfach aus.
\nVorteile: Einfach, verständlich, funktioniert „out of the box“.
\nNachteile: Hart im Code codiert – für jede Umgebung (Dev, Test, Prod) müssten Sie die Datei manuell ändern oder Profile verwenden.
\n\nMethode 2: application.yml (YAML) – für Struktur-Liebhaber
\nWenn Sie das YAML-Format bevorzugen, sieht die Konfiguration so aus:
\nserver:\n port: 9090\nAchten Sie auf die Einrückung: zwei Leerzeichen vor port. YAML ist empfindlich gegenüber Leerzeichen, ermöglicht aber die Gruppierung von Einstellungen. So können Sie beispielsweise gleich den Kontextpfad festlegen:
server:\n port: 9090\n servlet:\n context-path: /meineapp\nWann verwenden: Wenn Ihr Projekt bereits YAML für alle Konfigurationen nutzt (z. B. für Spring Cloud Config).
\n\nMethode 3: Kommandozeilenargumente – Flexibilität für DevOps
\nDie flexibelste Methode, die häufig in Containern und CI/CD eingesetzt wird. Übergeben Sie beim Start der JAR-Datei einfach den Parameter:
\njava -jar meineapp.jar --server.port=9090\nOder, wenn Sie das Maven/Gradle-Plugin verwenden:
\nmvn spring-boot:run -Dspring-boot.run.arguments=--server.port=9090\nKommandozeilenargumente haben die höchste Priorität aller Konfigurationsmethoden in Spring Boot. Das bedeutet, sie überschreiben sogar das, was in application.properties steht.
Ideal für: Docker-Container, Kubernetes, automatisierte Deployments.
\n\nMethode 4: Umgebungsvariablen – Standard für 12-Faktor-Apps
\nSpring Boot liest automatisch Umgebungsvariablen und wandelt sie in Eigenschaften um. Die Regel ist einfach: SERVER_PORT (Großbuchstaben, Unterstrich statt Punkt) wird zu server.port.
Unter Linux/macOS:
\nexport SERVER_PORT=9090\njava -jar meineapp.jar\nUnter Windows (cmd):
\nset SERVER_PORT=9090\njava -jar meineapp.jar\nIn Docker Compose sieht das noch eleganter aus:
\nservices:\n meineapp:\n image: meineapp:latest\n ports:\n - "9090:9090"\n environment:\n - SERVER_PORT=9090\nWarum das großartig ist: Umgebungsvariablen landen nicht im Repository, lassen sich einfach für verschiedene Umgebungen ändern und folgen der Methodik der 12-Faktor-App.
\n\nMethode 5: Programmatische Konfiguration – für die Feinkontrolle
\nManchmal muss der Port dynamisch berechnet werden (z. B. einen freien Port finden oder von einem externen Dienst abrufen). Hier kommt Java-Code ins Spiel.
\nDie einfachste Variante ist das Überschreiben der Methode setServerPort in der Klasse