Konfigurer en Spring Boot-webapplikasjon

1. Oversikt

Spring Boot kan gjøre mange ting; i denne opplæringen skal vi gå gjennom noen av de mer interessante konfigurasjonsalternativene i Boot.

2. Portnummeret

I hoved-frittstående applikasjoner er den viktigste HTTP-porten som standard 8080; vi kan enkelt konfigurere Boot til å bruke en annen port:

server.port = 8083

Og for YAML-basert konfigurasjon:

server: port: 8083

Vi kan også programmatisk tilpasse serverporten:

@Component public class CustomizationBean implementerer WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactory container) {container.setPort (8083); }}

3. Kontekststien

Som standard er kontekstbanen “/”. Hvis det ikke er ideelt, og du må endre det - til noe som /app_name, her er den raske og enkle måten å gjøre det via egenskaper:

server.servlet.contextPath = / springbootapp

Og for YAML-basert konfigurasjon:

server: servlet: contextPath: / springbootapp

Endelig - endringen kan også gjøres programmatisk:

@Component public class CustomizationBean implementerer WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.setContextPath ("/ springbootapp"); }}

4. White Label Feilsiden

Spring Boot registrerer automatisk en BasicErrorController bean hvis du ikke angir noen tilpasset implementering i konfigurasjonen.

Imidlertid kan denne standardkontrolleren selvfølgelig konfigureres:

offentlig klasse MyCustomErrorController implementerer ErrorController {private static final String PATH = "/ error"; @GetMapping (verdi = PATH) offentlig Strengfeil () {return "Error haven"; } @ Override public String getErrorPath () {return PATH; }}

5. Tilpass feilmeldingene

Boot gir /feil kartlegginger som standard for å håndtere feil på en fornuftig måte.

Hvis du vil konfigurere mer spesifikke feilsider, er det god støtte for en ensartet Java DSL for å tilpasse feilhåndtering:

@Component public class CustomizationBean implementerer WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.addErrorPages (new ErrorPage (HttpStatus.BAD_REQUEST, "/ 400")); container.addErrorPages (ny ErrorPage ("/ errorHaven")); }}

Her håndterte vi spesifikt Dårlig forespørsel å matche /400 sti og alle andre for å matche den vanlige stien.

Og en veldig enkel / errorHaven gjennomføring:

@GetMapping ("/ errorHaven") Streng errorHeaven () {return "Du har nådd feilhaven !!!"; }

Produksjon:

Du har nådd feilhaven !!!

6. Slå av en oppstartsapplikasjon programmatisk

Du kan programmatisk slå av en Boot-app ved hjelp av SpringApplication. Dette har en statisk exit() metoden som tar to argumenter: ApplicationContext og en ExitCodeGenerator:

@Autowired public void shutDown (ExecutorServiceExitCodeGenerator exitCodeGenerator) {SpringApplication.exit (applicationContext, exitCodeGenerator); }

Det er gjennom denne verktøymetoden at vi kan slå av appen.

7. Konfigurer loggningsnivåene

Du kan enkelt still inn loggningsnivåene i et Boot-program; Fra og med versjon 1.2.0 og utover kan du konfigurere loggnivået i hovedegenskapsfilen:

logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: ERROR

Og akkurat som med en standard Spring-app - kan du aktivere forskjellige loggsystemer som Tilbakekobling, log4j, log4j2, etc ved å legge til deres tilpassede XML- eller egenskapsfil i klassestien og definere bibliotekene i pom.

8. Registrer en ny servlet

Hvis du distribuerer applikasjonen ved hjelp av den innebygde serveren, kan du registrere nye Servlets i et Boot-program ved å utsette dem som bønner fra konvensjonell konfigurasjon:

@Bean offentlig HelloWorldServlet helloWorld () {returner nye HelloWorldServlet (); }

Alternativt kan du bruke en ServletRegistrationBean:

@Bean public SpringHelloServletRegistrationBean servletRegistrationBean () {SpringHelloServletRegistrationBean bean = new SpringHelloServletRegistrationBean (new SpringHelloWorldServlet (), "/ springHelloWorld / *"); bean.setLoadOnStartup (1); bean.addInitParameter ("melding", "SpringHelloWorldServlet spesiell melding"); retur bønne; }

9. Konfigurer brygge eller Undertow i Boot Application

Vårstøvlerne starter vanligvis Tomcat som standard innebygd server. Hvis det må endres - kan du ekskludere Tomcat-avhengigheten og inkludere brygge eller Undertow i stedet:

Konfigurerer brygge

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty 
@Bean offentlig JettyEmbeddedServletContainerFactory bryggeEmbeddedServletContainerFactory () {JettyEmbeddedServletContainerFactory jettyContainer = ny JettyEmbeddedServletContainerFactory (); jettyContainer.setPort (9000); jettyContainer.setContextPath ("/ springbootapp"); retur brygge Container; }

Konfigurere Undertow

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow 
@Bean public UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory () {UndertowEmbeddedServletContainerFactory fabrikk = ny UndertowEmbeddedServletContainerFactory (); factory.addBuilderCustomizers (ny UndertowBuilderCustomizer () {@Override public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0");}}); tilbake fabrikken; }

10. Konklusjon

I denne raske artikkelen gikk vi over noe av det mer interessante og nyttige konfigurasjoner for Spring Boot.

Det er selvfølgelig mange, mange flere alternativer for å konfigurere og stille en Boot-app til dine behov i referansedokumentene - dette er bare noen av de mer nyttige jeg fant.