Hoe de standaardpoort in Spring Boot te wijzigen

1. Inleiding

Spring Boot biedt verstandige standaardinstellingen voor veel configuratie-eigenschappen. Toch moeten we deze soms aanpassen met onze case-specifieke waarden.

Een veelvoorkomend gebruik is het wijzigen van de standaardpoort voor de ingebouwde server.

In deze korte tutorial behandelen we verschillende manieren om dit te bereiken.

2. Eigenschapbestanden gebruiken

De snelste en gemakkelijkste manier om Spring Boot aan te passen, is door de waarden van de standaardeigenschappen te overschrijven.

Voor de serverpoort is de eigenschap die we willen wijzigen Server poort.

Standaard start de embedded server op poort 8080. Laten we eens kijken hoe we een andere waarde kunnen bieden in een application.properties het dossier:

server.port = 8081

Nu start de server op poort 8081.

Evenzo kunnen we hetzelfde doen als we een application.yml het dossier:

server: poort: 8081

Beide bestanden worden automatisch door Spring Boot geladen als ze in het src / main / resources directory van een Maven-toepassing.

2.1. Omgevingsspecifieke poorten

Als we een applicatie hebben die in verschillende omgevingen wordt geïmplementeerd, willen we misschien dat deze op verschillende poorten op elk systeem draait.

Dit kunnen we eenvoudig realiseren door de property files-aanpak te combineren met Spring-profielen. Concreet kunnen we voor elke omgeving een eigenschappenbestand maken.

We hebben bijvoorbeeld een application-dev.properties bestand met de inhoud:

server.port = 8081

Dan voegen we er nog een toe application-qa.properties bestand met een andere poort:

server.port = 8082

De configuratie van de eigenschappenbestanden zou in de meeste gevallen voldoende moeten zijn.

Er zijn echter andere opties voor dit doel, dus laten we ze ook onderzoeken.

3. Programmatische configuratie

We kunnen de poort programmatisch configureren door de specifieke eigenschap in te stellen bij het starten van de applicatie of door de configuratie van de embedded server aan te passen.

Laten we eerst eens kijken hoe we de eigenschap in het hoofdmenu kunnen instellen @SpringBootApplication klasse:

@SpringBootApplication public class CustomApplication {public static void main (String [] args) {SpringApplication app = nieuwe SpringApplication (CustomApplication.class); app.setDefaultProperties (Collections .singletonMap ("server.port", "8083")); app.run (args); }}

Om de serverconfiguratie aan te passen, moeten we vervolgens het WebServerFactoryCustomizer koppel:

@Component openbare klasse ServerPortCustomizer implementeert WebServerFactoryCustomizer {@Override openbare leegte aanpassen (ConfigurableWebServerFactory factory) {factory.setPort (8086); }}

Merk op dat dit van toepassing is op de Spring Boot 2.x-versie.

Voor Spring Boot 1.x kunnen we op dezelfde manier het EmbeddedServletContainerCustomizer koppel.

4. Met behulp van opdrachtregelargumenten

Bij het verpakken en uitvoeren van onze applicatie als een pot, kunnen we de Server poort argument met de Java opdracht:

java -jar spring-5.jar --server.port = 8083

Of door de equivalente syntaxis te gebruiken:

java -jar -Dserver.port = 8083 spring-5.jar

5. Volgorde van evaluatie

Laten we als laatste opmerking kijken naar de volgorde waarin deze benaderingen worden geëvalueerd door Spring Boot.

Kortom, de prioriteit van configuraties is:

  • embedded server configuratie
  • opdrachtregelargumenten
  • eigenschappenbestanden
  • hoofd @SpringBootApplication configuratie

6. Conclusie

In deze korte tutorial hebben we gezien hoe je de serverpoort configureert in een Spring Boot-applicatie.

De broncode voor de voorbeelden is beschikbaar op GitHub.