Hvordan endre standardport i Spring Boot

1. Introduksjon

Spring Boot gir fornuftige standardverdier for mange konfigurasjonsegenskaper. Likevel trenger vi noen ganger å tilpasse disse med våre saksspesifikke verdier.

En vanlig brukssak er endre standardporten for den innebygde serveren.

I denne raske opplæringen vil vi dekke flere måter å oppnå dette på.

2. Bruke eiendomsfiler

Den raskeste og enkleste måten å tilpasse Spring Boot er ved å overstyre verdiene til standardegenskapene.

For serverporten er egenskapen vi vil endre server.port.

Som standard starter den innebygde serveren på port 8080. La oss se hvordan vi kan gi en annen verdi i en application.properties fil:

server.port = 8081

Nå starter serveren på port 8081.

På samme måte kan vi gjøre det samme hvis vi bruker en application.yml fil:

server: port: 8081

Begge filene lastes automatisk inn av Spring Boot hvis de plasseres i src / main / resources katalog over et Maven-program.

2.1. Miljøspesifikke porter

Hvis vi har et program som er distribuert i forskjellige miljøer, vil vi kanskje at det skal kjøre på forskjellige porter på hvert system.

Vi kan enkelt oppnå dette ved å kombinere tilgangen til eiendomsfiler med vårprofiler. Spesielt kan vi lage en eiendomsfil for hvert miljø.

For eksempel vil vi ha en application-ev.properties fil med innholdet:

server.port = 8081

Deretter legger vi til en annen application-qa.properties fil med en annen port:

server.port = 8082

Egenskapsfilene skal være tilstrekkelig i de fleste tilfeller.

Imidlertid er det andre alternativer for dette målet, så la oss også utforske dem.

3. Programmatisk konfigurasjon

Vi kan konfigurere porten programmatisk ved å enten stille den spesifikke egenskapen når du starter applikasjonen eller ved å tilpasse den innebygde serverkonfigurasjonen.

La oss først se hvordan du setter eiendommen i hovedsak @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); }}

Deretter, for å tilpasse serverkonfigurasjonen, må vi implementere WebServerFactoryCustomizer grensesnitt:

@Komponent offentlig klasse ServerPortCustomizer implementerer WebServerFactoryCustomizer {@Override public void customize (ConfigurableWebServerFactory factory) {factory.setPort (8086); }}

Merk at dette gjelder Spring Boot 2.x-versjonen.

For Spring Boot 1.x kan vi på samme måte implementere EmbeddedServletContainerCustomizer grensesnitt.

4. Bruke kommandolinjeargumenter

Når vi pakker og kjører applikasjonen som en krukke, kan vi stille inn server.port argument med java kommando:

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

Eller ved å bruke tilsvarende syntaks:

java -jar -Dserver.port = 8083 vår-5.jar

5. Evalueringsrekkefølge

Som et siste notat, la oss se på i hvilken rekkefølge disse tilnærmingene blir evaluert av Spring Boot.

I utgangspunktet er konfigurasjonsprioriteten:

  • innebygd serverkonfigurasjon
  • kommandolinje argumenter
  • eiendomsfiler
  • hoved- @SpringBootApplication konfigurasjon

6. Konklusjon

I denne raske opplæringen så vi hvordan du konfigurerer serverporten i en Spring Boot-applikasjon.

Kildekoden for eksemplene er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found