Konfigurálja a Spring Boot webalkalmazást

1. Áttekintés

A Spring Boot sok mindenre képes; ebben az oktatóanyagban áttekintjük a Boot néhány érdekesebb konfigurációs lehetőségét.

2. A portszám

A fő önálló alkalmazásokban a fő HTTP port alapértelmezés szerint 8080; könnyen konfigurálhatjuk a Boot-ot egy másik port használatára:

szerver.port = 8083

És a YAML-alapú konfigurációhoz:

szerver: port: 8083

Programozottan testreszabhatjuk a kiszolgáló portját is:

@Component public class CustomizationBean implementálja a WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactory container) {container.setPort (8083); }}

3. A kontextus elérési útja

Alapértelmezés szerint a kontextus elérési útja „/”. Ha ez nem ideális, és meg kell változtatnia - valami ilyesmire /App név, íme a tulajdonságok segítségével történő gyors és egyszerű mód:

server.servlet.contextPath = / springbootapp

És a YAML-alapú konfigurációhoz:

szerver: servlet: contextPath: / springbootapp

Végül - a változtatás programszerűen is elvégezhető:

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

4. A White Label Error oldal

A Spring Boot automatikusan regisztrálja a BasicErrorController Bean, ha nem ad meg egyéni megvalósítást a konfigurációban.

Ez az alapértelmezett vezérlő természetesen konfigurálható:

public class MyCustomErrorController implementálja a ErrorController {private static final String PATH = "/ hiba"; @GetMapping (value = PATH) public String error () {return "Error haven"; } @Orride public String getErrorPath () {return PATH; }}

5. Testreszabhatja a hibaüzeneteket

Boot biztosítja /hiba alapértelmezés szerint leképezések a hibák ésszerű kezeléséhez.

Ha konkrétabb hibalehetőségeket szeretne konfigurálni, jó támogatást nyújt az egységes Java DSL a hibakezelés testreszabásához:

@Component public class CustomizationBean implementálja a WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.addErrorPages (new ErrorPage (HttpStatus.BAD_REQUEST, "/ 400")); container.addErrorPages (új ErrorPage ("/ errorHaven")); }}

Itt kifejezetten kezeltük Rossz kérés hogy megfeleljen a /400 ösvény és minden más, hogy megfeleljen a közös ösvénynek.

És nagyon egyszerű / errorHaven végrehajtás:

@GetMapping ("/ errorHaven") String errorHeaven () {return "Elérted a hibák menedékét !!!"; }

Kimenet:

Elérte a hibák menedékét !!!

6. Programozatosan állítsa le a rendszerindító alkalmazást

A segítségével programozottan leállíthat egy Boot alkalmazást SpringApplication. Ez statikus kijárat() módszer, amely két érvet vesz fel: a ApplicationContext és egy ExitCodeGenerator:

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

Ezzel a segédprogrammal állíthatjuk le az alkalmazást.

7. Konfigurálja a naplózási szinteket

Könnyen hangolja a naplózási szinteket egy Boot alkalmazásban; Az 1.2.0 verziótól kezdve a fő tulajdonságfájlban konfigurálhatja a naplószintet:

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

És ugyanúgy, mint egy szokásos tavaszi alkalmazásnál - aktiválhat különböző naplózási rendszereket, például Vissza, log4j, log4j2, stb. azáltal, hogy hozzáadják testreszabott XML vagy tulajdonság fájljukat az osztályútvonalhoz, és meghatározzák a könyvtárakat a csomagban.

8. Regisztráljon egy új szervletet

Ha az alkalmazást a beágyazott szerver segítségével telepíti, új Servleteket regisztrálhat egy Boot alkalmazásban babként kitéve őket a hagyományos konfigurációból:

@Bean public HelloWorldServlet helloWorld () {return new HelloWorldServlet (); }

Alternatív megoldásként használhatja a ServletRegistrationBean:

@Bean public SpringHelloServletRegistrationBean servletRegistrationBean () {SpringHelloServletRegistrationBean bean = new SpringHelloServletRegistrationBean (new SpringHelloWorldServlet (), "/ springHelloWorld / *"); bean.setLoadOnStartup (1); bean.addInitParameter ("üzenet", "SpringHelloWorldServlet speciális üzenet"); visszatérő bab; }

9. Konfigurálja a mólót vagy az Undertow-t a Boot alkalmazásban

A Spring Boot indítók általában használják A Tomcat, mint alapértelmezett beágyazott szerver. Ha ezen változtatni kell - kizárhatja a Tomcat-függőséget, és helyette felveheti a Mólót vagy az Undertow-t:

A móló konfigurálása

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-móló 
@Bean public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory () {JettyEmbeddedServletContainerFactory jettyContainer = new JettyEmbeddedServletContainerFactory (); jettyContainer.setPort (9000); jettyContainer.setContextPath ("/ springbootapp"); visszatérő mólóContainer; }

Az Undertow beállítása

 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 factory = new UndertowEmbeddedServletContainerFactory (); factory.addBuilderCustomizers (új UndertowBuilderCustomizer () {@Override public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0";}}); visszatérő gyár; }

10. Következtetés

Ebben a gyors cikkben áttekintettünk néhányat érdekes és hasznos Spring Boot konfigurációs lehetőségek.

Természetesen sok-sok további lehetőség áll rendelkezésre a Boot alkalmazás konfigurálására és az igényekre történő hangolására a referenciadokumentumokban - ez csak néhány a hasznosabbak közül.