Konfigurirajte web aplikaciju Spring Boot

1. Pregled

Spring Boot može učiniti puno stvari; u ovom ćemo uputstvu razmotriti nekoliko zanimljivijih opcija konfiguracije u sustavu Boot.

2. Broj priključka

U glavnim samostalnim aplikacijama glavni HTTP priključak zadan je na 8080; možemo jednostavno konfigurirati Boot da koristi drugi port:

poslužitelj.port = 8083

A za YAML konfiguraciju:

poslužitelj: port: 8083

Port poslužitelja također možemo programski prilagoditi:

@Component javna klasa CustomizationBean implementira WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactory container) {container.setPort (8083); }}

3. Kontekstni put

Prema zadanim postavkama, staza konteksta je "/". Ako to nije idealno i trebate ga promijeniti - u nešto poput /ime_aplikacije, evo brzog i jednostavnog načina da to učinite putem svojstava:

server.servlet.contextPath = / springbootapp

A za YAML-zasnovanu konfiguraciju:

poslužitelj: servlet: contextPath: / springbootapp

Napokon - promjena se može izvršiti i programski:

@Component javna klasa CustomizationBean implementira WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.setContextPath ("/ springbootapp"); }}

4. Stranica s pogreškom White Label

Spring Boot automatski registrira a BasicErrorController bean ako u konfiguraciji ne navedete prilagođenu implementaciju.

Međutim, ovaj zadani kontroler se, naravno, može konfigurirati:

javna klasa MyCustomErrorController implementira ErrorController {private static final String PATH = "/ error"; @GetMapping (value = PATH) public String error () {return "Pogreška utočište"; } @Override javni niz getErrorPath () {return PATH; }}

5. Prilagodite poruke o pogreškama

Dizanje pruža / pogreška preslikavanja prema zadanim postavkama radi razumnog rukovanja pogreškama.

Ako želite konfigurirati specifičnije stranice s pogreškama, postoji dobra podrška za jednoobrazni Java DSL za prilagodbu rukovanja pogreškama:

@Component javna klasa CustomizationBean implementira WebServerFactoryCustomizer {@ Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.addErrorPages (new ErrorPage (HttpStatus.BAD_REQUEST, "/ 400")); container.addErrorPages (nova ErrorPage ("/ errorHaven")); }}

Ovdje smo posebno postupili Loš zahtjev kako bi odgovarao /400 put i svi ostali koji odgovaraju zajedničkom putu.

I vrlo jednostavno / errorHaven provedba:

@GetMapping ("/ errorHaven") Niz errorHeaven () {return "Došli ste do utočišta pogrešaka !!!"; }

Izlaz:

Stigli ste do utočišta pogrešaka !!!

6. Programski isključite aplikaciju za pokretanje

Pomoću programa možete programski isključiti aplikaciju za pokretanje SpringApplication. Ovo ima statiku Izlaz() metoda koja uzima dva argumenta: ApplicationContext i an ExitCodeGenerator:

@Autowired javna praznina shutDown (ExecutorServiceExitCodeGenerator exitCodeGenerator) {SpringApplication.exit (applicationContext, exitCodeGenerator); }

Kroz ovu uslužnu metodu možemo isključiti aplikaciju.

7. Konfigurirajte razine bilježenja

Možete lako podesite razine zapisivanja u aplikaciji za pokretanje; Počevši od verzije 1.2.0 nadalje, možete konfigurirati razinu dnevnika u glavnoj datoteci svojstava:

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

I baš kao i kod standardne aplikacije Spring, možete aktivirati različite sustave zapisivanja, poput Povratna informacija, log4j, log4j2, itd. dodavanjem prilagođenog XML-a ili datoteke svojstava u put predavanja i definiranjem knjižnica u pom.

8. Registrirajte novi Servlet

Ako primjenjujete aplikaciju uz pomoć ugrađenog poslužitelja, nove servlete možete registrirati u pokretačkoj aplikaciji izlažući ih kao grah iz konvencionalne konfiguracije:

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

Možete koristiti i ServletRegistrationBean:

@Bean public SpringHelloServletRegistrationBean servletRegistrationBean () {SpringHelloServletRegistrationBean bean = new SpringHelloServletRegistrationBean (new SpringHelloWorldServlet (), "/ springHelloWorld / *"); bean.setLoadOnStartup (1); bean.addInitParameter ("poruka", "posebna poruka SpringHelloWorldServlet"); grah za povratak; }

9. Konfigurirajte Jetty ili Undertow u aplikaciji za pokretanje

Općenito koriste Spring Boot starteri Tomcat kao zadani ugrađeni poslužitelj. Ako je to potrebno promijeniti - možete izuzeti ovisnost Tomcat i umjesto toga uključiti Jetty ili Undertow:

Konfiguriranje mola

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty 
@Bean public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory () {JettyEmbeddedServletContainerFactory jettyContainer = new JettyEmbeddedServletContainerFactory (); jettyContainer.setPort (9000); jettyContainer.setContextPath ("/ springbootapp"); povrat jettyContainer; }

Konfiguriranje Undertowa

 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 (novi UndertowBuilderCustomizer () {@Override public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0");}}); tvornica za povratak; }

10. Zaključak

U ovom kratkom članku prešli smo na neke od više zanimljive i korisne opcije konfiguracije Spring Boot.

Postoje naravno puno, puno više opcija za konfiguriranje i podešavanje aplikacije za pokretanje prema vašim potrebama u referentnim dokumentima - ovo su samo neke od korisnijih koje sam pronašao.


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