Nakonfigurujte webovú aplikáciu Spring Boot
1. Prehľad
Spring Boot dokáže veľa vecí; v tomto výučbe si prejdeme niekoľko zaujímavejších možností konfigurácie v Boote.
2. Číslo portu
V hlavných samostatných aplikáciách je hlavný port HTTP predvolene nastavený na 8080; môžeme ľahko nakonfigurovať boot tak, aby používal iný port:
server.port = 8083
A pre konfiguráciu založenú na YAML:
server: port: 8083
Môžeme tiež programovo prispôsobiť port servera:
@ Komponenta verejná trieda CustomizationBean implementuje WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactory container) {container.setPort (8083); }}
3. Kontextová cesta
V predvolenom nastavení je kontextová cesta „/“. Ak to nie je ideálne a musíte to zmeniť - na niečo ako /app_name, tu je rýchly a jednoduchý spôsob, ako to urobiť pomocou vlastností:
server.servlet.contextPath = / springbootapp
A pre konfiguráciu založenú na YAML:
server: servlet: contextPath: / springbootapp
Nakoniec - zmenu je možné vykonať aj programovo:
@Component public class CustomizationBean implementuje WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.setContextPath ("/ springbootapp"); }}
4. Chybová stránka Biely štítok
Spring Boot automaticky zaregistruje a BasicErrorController
bean, pokiaľ v konfigurácii nezadáte žiadnu vlastnú implementáciu.
Tento predvolený radič je však možné samozrejme nakonfigurovať:
verejná trieda MyCustomErrorController implementuje ErrorController {private static final String PATH = "/ error"; @GetMapping (value = PATH) public String error () {return "Error haven"; } @Override public String getErrorPath () {return PATH; }}
5. Prispôsobte si chybové správy
Boot poskytuje /chyba mapovania predvolene na rozumné riešenie chýb.
Ak chcete nakonfigurovať konkrétnejšie chybové stránky, existuje dobrá podpora pre jednotné Java DSL na prispôsobenie spracovania chýb:
@Component public class CustomizationBean implementuje WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.addErrorPages (new ErrorPage (HttpStatus.BAD_REQUEST, "/ 400")); container.addErrorPages (new ErrorPage ("/ errorHaven")); }}
Tu sme konkrétne zaobchádzali Zlá požiadavka aby zodpovedali /400 cestu a všetky ostatné, aby zodpovedali spoločnej ceste.
A veľmi jednoduché / errorHaven implementácia:
@GetMapping ("/ errorHaven") String errorHeaven () {return "Dosiahli ste útočisko chýb !!!"; }
Výkon:
Dostali ste sa do prístavu chýb !!!
6. Programovo vypnite spúšťaciu aplikáciu
Aplikáciu Boot môžete programovo vypnúť pomocou SpringApplication. Toto má statický údaj východ() metóda, ktorá vyžaduje dva argumenty: ApplicationContext a an ExitCodeGenerator:
@Autowired public void shutDown (ExecutorServiceExitCodeGenerator exitCodeGenerator) {SpringApplication.exit (applicationContext, exitCodeGenerator); }
Aplikáciu môžeme vypnúť pomocou tejto užitočnej metódy.
7. Nakonfigurujte úrovne protokolovania
Môžete ľahko vyladiť úrovne protokolovania v aplikácii Boot; Počnúc verziou 1.2.0 a novšou môžete úroveň protokolu nakonfigurovať v hlavnom súbore vlastností:
logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: CHYBA
A rovnako ako v prípade štandardnej aplikácie Spring - aj tu môžete aktivovať rôzne systémy ťažby dreva Logback, log4j, log4j2atď. pridaním prispôsobeného súboru XML alebo súboru vlastností do cesty triedy a definovaním knižníc v pom.
8. Zaregistrujte nový servlet
Ak aplikáciu implementujete pomocou zabudovaného servera, môžete zaregistrovať nové servlety v zavádzacej aplikácii ich vystavením ako fazule z konvenčnej konfigurácie:
@Bean public HelloWorldServlet helloWorld () {vrátiť nový HelloWorldServlet (); }
Prípadne môžete použiť a ServletRegistrationBean: Štartéry Spring Boot sa všeobecne používajú Tomcat ako predvolený zabudovaný server. Ak je to potrebné zmeniť - môžete vylúčiť závislosť Tomcat a namiesto nej zahrnúť Jetty alebo Undertow: Konfigurácia móla Konfigurácia záväzku V tomto rýchlom článku sme si prebrali niektoré z ďalších zaujímavé a užitočné možnosti konfigurácie Spring Boot. V referenčných dokumentoch je samozrejme oveľa viac možností na konfiguráciu a vyladenie aplikácie Boot podľa vašich potrieb - to sú len niektoré z tých užitočnejších, ktoré som našiel.@Bean public SpringHelloServletRegistrationBean servletRegistrationBean () {SpringHelloServletRegistrationBean bean = nový SpringHelloServletRegistrationBean (nový SpringHelloWorldServlet (), "/ springHelloWorld / *"); bean.setLoadOnStartup (1); bean.addInitParameter ("správa", "špeciálna správa SpringHelloWorldServlet"); spätná fazuľa; }
9. Nakonfigurujte Jetty alebo Undertow v bootovacej aplikácii
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-mólo
@Bean public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory () {JettyEmbeddedServletContainerFactory jettyContainer = nový JettyEmbeddedServletContainerFactory (); jettyContainer.setPort (9000); jettyContainer.setContextPath ("/ springbootapp"); spätné móloKontajner; }
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 (nový UndertowBuilderCustomizer () {@Override public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0");}}); vrátiť továreň; }
10. Záver