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: 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 Konfiguriranje Undertowa 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.@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
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; }
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