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:

@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

Š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

 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; }

Konfigurácia záväzku

 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

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.


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