Una rapida introduzione a SpringBootServletInitializer

1. Panoramica

In questo tutorial, esamineremo una rapida introduzione di SpringBootServletInitializer .

Questa è un'estensione di WebApplicationInitializer che esegue una SpringApplication da un archivio WAR tradizionale distribuito su un contenitore web. Questa classe associa i bean Servlet , Filter e ServletContextInitializer dal contesto dell'applicazione al server.

L'estensione della classe SpringBootServletInitializer ci consente anche di configurare la nostra applicazione quando viene eseguita dal contenitore servlet, sovrascrivendo il metodo configure () .

2. SpringBootServletInitializer

Per essere più pratici, mostreremo un esempio di una classe principale che estende la classe Initializer .

Il nostro @SpringBootApplication classe chiamata WarInitializerApplication estende la SpringBootServletInitializer e sostituisce il configure () metodo. Questo metodo utilizza SpringApplicationBuilder per registrare semplicemente la nostra classe come classe di configurazione dell'applicazione:

@SpringBootApplication public class WarInitializerApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder builder) { return builder.sources(WarInitializerApplication.class); } public static void main(String[] args) { SpringApplication sa = new SpringApplication( WarInitializerApplication.class); sa.run(args); } @RestController public static class WarInitializerController { @GetMapping("/") public String handler() { // ... } } } 

Ora, se impacchettiamo la nostra applicazione come WAR, saremo in grado di distribuirla su qualsiasi contenitore web in modo tradizionale, che eseguirà anche la logica che abbiamo aggiunto nel metodo configure () .

Se vogliamo impacchettarlo come file JAR, allora dovremo aggiungere la stessa logica al metodo main () in modo che anche il contenitore incorporato possa prenderlo.

3. Conclusione

In questo articolo, abbiamo introdotto SpringBootServletInitializer e dimostrato come possiamo usarlo per eseguire applicazioni Spring Boot da un archivio WAR classico.

Il codice sorgente completo per l'esempio è disponibile su GitHub. Questo è un progetto basato su Maven, quindi può essere importato e utilizzato così com'è.