Sådan ændres standardporten i Spring Boot

1. Introduktion

Spring Boot giver fornuftige standardindstillinger for mange konfigurationsegenskaber. Alligevel er vi undertiden nødt til at tilpasse disse med vores sags-specifikke værdier.

En almindelig brugssag er ændre standardporten for den integrerede server.

I denne hurtige vejledning dækker vi flere måder at opnå dette på.

2. Brug af ejendomsfiler

Den hurtigste og nemmeste måde at tilpasse Spring Boot er ved at tilsidesætte værdierne for standardegenskaberne.

For serverporten er den egenskab, vi vil ændre server.port.

Som standard starter den integrerede server på port 8080. Lad os se, hvordan vi kan give en anden værdi i en application.properties fil:

server.port = 8081

Nu starter serveren på port 8081.

På samme måde kan vi gøre det samme, hvis vi bruger en ansøgning.yml fil:

server: port: 8081

Begge filer indlæses automatisk af Spring Boot, hvis de placeres i src / main / ressourcer katalog over et Maven-program.

2.1. Miljøspecifikke havne

Hvis vi har et program, der er implementeret i forskellige miljøer, vil vi muligvis have det til at køre på forskellige porte på hvert system.

Vi kan let opnå dette ved at kombinere tilgangen til ejendomsfiler med Spring-profiler. Specifikt kan vi oprette en egenskabsfil til hvert miljø.

For eksempel har vi en application-ev.properties fil med indholdet:

server.port = 8081

Derefter tilføjer vi en anden application-qa. ejendomme fil med en anden port:

server.port = 8082

Konfigurationen af ​​egenskabsfilerne skal være tilstrækkelig i de fleste tilfælde.

Der er dog andre muligheder for dette mål, så lad os også undersøge dem.

3. Programmatisk konfiguration

Vi kan konfigurere porten programmatisk ved enten at indstille den specifikke egenskab, når vi starter applikationen eller ved at tilpasse den integrerede serverkonfiguration.

Lad os først se, hvordan du indstiller ejendommen i hovedsagen @SpringBootApplication klasse:

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

For at tilpasse serverkonfigurationen skal vi derefter implementere WebServerFactoryCustomizer grænseflade:

@Component public class ServerPortCustomizer implementerer WebServerFactoryCustomizer {@Override public void customize (ConfigurableWebServerFactory factory) {factory.setPort (8086); }}

Bemærk, at dette gælder for Spring Boot 2.x version.

For Spring Boot 1.x kan vi på samme måde implementere EmbeddedServletContainerCustomizer interface.

4. Brug af kommandolinjeargumenter

Når vi pakker og kører vores applikation som en krukke, kan vi indstille server.port argument med java kommando:

java -jar forår-5.jar --server.port = 8083

Eller ved at bruge den tilsvarende syntaks:

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

5. Evalueringsrækkefølge

Som en sidste note, lad os se på rækkefølgen, i hvilken disse tilgange vurderes af Spring Boot.

Grundlæggende er konfigurationsprioriteten:

  • integreret serverkonfiguration
  • kommandolinjeargumenter
  • ejendomsfiler
  • vigtigste @SpringBootApplication konfiguration

6. Konklusion

I denne hurtige vejledning så vi, hvordan vi konfigurerede serverporten i en Spring Boot-applikation.

Kildekoden til eksemplerne er tilgængelig på GitHub.