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: 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 Konfigurere Undertow 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.@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
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; }
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