Konfigurer en Spring Boot-webapplikation

1. Oversigt

Spring Boot kan gøre en masse ting; i denne vejledning skal vi gennemgå et par af de mere interessante konfigurationsindstillinger i Boot.

2. Portnummeret

I de vigtigste enkeltstående applikationer er den primære HTTP-port som standard 8080; Vi kan nemt konfigurere Boot til at bruge en anden port:

server.port = 8083

Og til YAML-baseret konfiguration:

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 kontekststien “/”. Hvis det ikke er ideelt, og du skal ændre det - til noget som /app_name, her er den hurtige og enkle måde at gøre det på via egenskaber:

server.servlet.contextPath = / springbootapp

Og til YAML-baseret konfiguration:

server: servlet: contextPath: / springbootapp

Endelig - ændringen kan også gøres programmatisk:

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

4. White Label-fejlsiden

Spring Boot registrerer automatisk en BasicErrorController bean, hvis du ikke angiver nogen brugerdefineret implementering i konfigurationen.

Denne standardcontroller kan dog naturligvis konfigureres:

offentlig klasse MyCustomErrorController implementerer ErrorController {privat statisk endelig streng PATH = "/ fejl"; @GetMapping (værdi = PATH) offentlig Strengfejl () {return "Fejlhaven"; } @ Override public String getErrorPath () {return PATH; }}

5. Tilpas fejlmeddelelserne

Boot giver /fejl kortlægninger som standard for at håndtere fejl på en fornuftig måde.

Hvis du vil konfigurere mere specifikke fejlsider, er der god support til en ensartet Java DSL til at tilpasse fejlhå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åndterede vi specifikt Dårlig anmodning at matche /400 sti og alle andre til at matche den fælles sti.

Og en meget enkel / errorHaven implementering:

@GetMapping ("/ errorHaven") String errorHeaven () {return "Du har nået tilflugtsstedet for fejl !!!"; }

Produktion:

Du har nået tilflugtsstedet for fejl !!!

6. Luk en Boot-applikation ned programmatisk

Du kan programmatisk lukke en Boot-app ved hjælp af SpringApplication. Dette har en statisk Afslut() metode, der tager to argumenter: ApplicationContext og en ExitCodeGenerator:

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

Det er gennem denne hjælpemetode, at vi kan lukke appen.

7. Konfigurer logningsniveauerne

Det kan du nemt indstil logningsniveauerne i en Boot-applikation; Fra og med version 1.2.0 og fremefter kan du konfigurere logniveauet i hovedegenskabsfilen:

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

Og ligesom med en standard Spring-app - kan du aktivere forskellige logningssystemer som f.eks Logback, log4j, log4j2osv. ved at tilføje deres tilpassede XML- eller egenskabsfil på klassestien og definere bibliotekerne i pom.

8. Registrer en ny servlet

Hvis du implementerer applikationen ved hjælp af den integrerede server, kan du registrere nye Servlets i et Boot-program ved at udsætte dem for bønner fra konventionel konfiguration:

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

Alternativt kan du bruge en ServletRegistrationBean:

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

9. Konfigurer anløbsbro eller Undertow i Boot Application

Spring Boot startere bruger generelt Tomcat som standard integreret server. Hvis det skal ændres, kan du udelukke Tomcat-afhængigheden og inkludere Jetty eller Undertow i stedet:

Konfiguration af anløbsbro

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

Konfiguration af 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 fabrik = ny UndertowEmbeddedServletContainerFactory (); factory.addBuilderCustomizers (ny UndertowBuilderCustomizer () {@Override public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0");}}); retur fabrik; }

10. Konklusion

I denne hurtige artikel gik vi over nogle af de mere interessante og nyttige Spring Boot-konfigurationsindstillinger.

Der er selvfølgelig mange, mange flere muligheder for at konfigurere og indstille en Boot-app til dine behov i referencedokumenterne - disse er bare nogle af de mere nyttige, jeg fandt.


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