liveBook · Manning

SpringBootServletInitializer

As explained in Spring in Action, Sixth Edition

SpringBootServletInitializer is a Spring Boot class that integrates a Spring application with a servlet container by configuring its application context and servlet components.

SpringBootServletInitializer connects a Spring Boot application to a traditional servlet container. It configures DispatcherServlet and binds Spring beans of type Filter, Servlet, or ServletContextInitializer to the container. section 18.4

Use it when packaging the application as a WAR. Create a subclass, override configure(), and register the main Spring configuration class through SpringApplicationBuilder. A class annotated with @SpringBootApplication can then discover additional configuration through component scanning. section 18.4

Servlet initializer for Taco Cloud

TacoCloudServletInitializer extends SpringBootServletInitializer and returns builder.sources(TacoCloudApplication.class) from configure(). The application class acts both as the executable-JAR bootstrap class and the registered Spring configuration class. section 18.4

Listing 18.1 Enabling Spring web applications via Java
package tacos;
 
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
 
public class TacoCloudServletInitializer
       extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(
                                  SpringApplicationBuilder builder) {
    return builder.sources(TacoCloudApplication.class);
  }
}

View the complete Java initializer, including the SpringApplicationBuilder, subclass declaration, and configure() override. section 18.4

A typical deployment choice follows this pattern:

  • Choose WAR packaging when deploying into a traditional application server; Spring Boot projects generated with the WAR option already include the initializer. section 18.4
  • Use an executable JAR when the deployment environment does not require a traditional servlet container. section 18.6

How Spring in Action, Sixth Edition covers it

How deep it goes
Explains subclassing and configure() registration, while leaving servlet-container internals and deployment details largely implicit.
Examples
Uses TacoCloudServletInitializer and a complete Java listing that registers TacoCloudApplication.
What it assumes
Assumes basic Spring configuration and servlet-container concepts while introducing the initializer's integration role.
What you can do after
Configure a WAR deployment by subclassing the initializer and registering the application configuration class.
How it connects
Connects DispatcherServlet, WebApplicationInitializer, SpringApplicationBuilder, component scanning, WAR packaging, and executable JAR deployment.

This explainer was generated by Manning's knowledge graph from the text of Spring in Action, Sixth Edition. The section links point to the parts of the book it draws on.