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: 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 Az Undertow beállítása 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.@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
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; }
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