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.