Kratki uvod u SpringBootServletInitializer

1. Pregled

U ovom uputstvu proći ćemo kroz kratko uvođenje SpringBootServletInitializer.

Ovo je produžetak WebApplicationInitializer koji vodi a SpringApplication iz tradicionalne WAR arhive raspoređeni na web spremniku. Ova klasa je obvezujuća Servlet, filtar i ServletContextInitializer grah iz konteksta aplikacije na poslužitelj.

Proširivanje SpringBootServletInitializer klasa također nam omogućuje da konfiguriramo našu aplikaciju kada je pokreće spremnik servleta, nadjačavanjem konfigurirati() metoda.

2. SpringBootServletInitializer

Da bismo bili praktičniji, pokazat ćemo primjer glavne klase koja proširuje Inicijalizator razred.

Naše @SpringBootApplication razred nazvan WarInitializerApplication proširuje SpringBootServletInitializer i poništava konfigurirati() metoda. Ta metoda koristi SpringApplicationBuilder da jednostavno registriramo našu klasu kao konfiguracijsku klasu aplikacije:

@SpringBootApplication javna klasa WarInitializerApplication proširuje SpringBootServletInitializer {@Override zaštićeni SpringApplicationBuilder configure (SpringApplicationBuilder builder) {return builder.sources (WarInitializerApplication.class); } javna statička void glavna (String [] args) {SpringApplication sa = nova SpringApplication (WarInitializerApplication.class); sa.run (argumenti); } @RestController javna statička klasa WarInitializerController {@GetMapping ("/") javni obrađivač nizova () {// ...}}} 

Sada, ako svoju aplikaciju spakiramo u RAT, moći ćemo je rasporediti na bilo kojem web-spremniku na tradicionalan način, koji će također izvršiti logiku koju smo dodali u konfigurirati() metoda.

Ako je želimo spakirati kao JAR datoteku, morat ćemo dodati istu logiku u glavni() metodom kako bi ga ugrađeni spremnik mogao i pokupiti.

3. Zaključak

U ovom smo članku predstavili SpringBootServletInitializer i pokazali kako ga možemo koristiti za pokretanje Spring Boot aplikacija iz klasične WAR arhive.

Kompletni izvorni kod za primjer dostupan je na GitHubu. Ovo je projekt zasnovan na Mavenu, pa se može uvesti i koristiti takav kakav jest.


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