Class SpringBootServletInitializer

java.lang.Object
org.springframework.boot.web.servlet.support.SpringBootServletInitializer
All Implemented Interfaces:
WebApplicationInitializer

public abstract class SpringBootServletInitializer extends Object implements WebApplicationInitializer
An opinionated WebApplicationInitializer to run a SpringApplication from a traditional WAR deployment. Binds Servlet, Filter and ServletContextInitializer beans from the application context to the server.

To configure the application either override the configure(SpringApplicationBuilder) method (calling SpringApplicationBuilder.sources(Class...)) or make the initializer itself a @Configuration. If you are using SpringBootServletInitializer in combination with other WebApplicationInitializers you might also want to add an @Ordered annotation to configure a specific startup order.

Note that a WebApplicationInitializer is only needed if you are building a war file and deploying it. If you prefer to run an embedded web server then you won't need this at all.

Since:
2.0.0
Author:
Dave Syer, Phillip Webb, Andy Wilkinson, Brian Clozel
See Also:
  • Field Details

    • logger

      protected Log logger
  • Constructor Details

    • SpringBootServletInitializer

      public SpringBootServletInitializer()
  • Method Details

    • setRegisterErrorPageFilter

      protected final void setRegisterErrorPageFilter(boolean registerErrorPageFilter)
      Set if the ErrorPageFilter should be registered. Set to false if error page mappings should be handled through the server and not Spring Boot.
      Parameters:
      registerErrorPageFilter - if the ErrorPageFilter should be registered.
    • onStartup

      public void onStartup(ServletContext servletContext) throws ServletException
      Specified by:
      onStartup in interface WebApplicationInitializer
      Throws:
      ServletException
    • deregisterJdbcDrivers

      protected void deregisterJdbcDrivers(ServletContext servletContext)
      Deregisters the JDBC drivers that were registered by the application represented by the given servletContext. The default implementation deregisters every Driver that was loaded by the web application's class loader.
      Parameters:
      servletContext - the web application's servlet context
      Since:
      2.3.0
    • shutDownSharedReactorSchedulers

      protected void shutDownSharedReactorSchedulers(ServletContext servletContext)
      Shuts down the reactor Schedulers that were initialized by Schedulers.boundedElastic() (or similar). The default implementation Schedulers.shutdownNow() schedulers if they were initialized on this web application's class loader.
      Parameters:
      servletContext - the web application's servlet context
      Since:
      3.4.0
    • createRootApplicationContext

      protected WebApplicationContext createRootApplicationContext(ServletContext servletContext)
    • createSpringApplicationBuilder

      protected SpringApplicationBuilder createSpringApplicationBuilder()
      Returns the SpringApplicationBuilder that is used to configure and create the SpringApplication. The default implementation returns a new SpringApplicationBuilder in its default state.
      Returns:
      the SpringApplicationBuilder.
      Since:
      1.3.0
    • run

      protected WebApplicationContext run(SpringApplication application)
      Called to run a fully configured SpringApplication.
      Parameters:
      application - the application to run
      Returns:
      the WebApplicationContext
    • configure

      protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
      Configure the application. Normally all you would need to do is to add sources (e.g. config classes) because other settings have sensible defaults. You might choose (for instance) to add default command line arguments, or set an active Spring profile.
      Parameters:
      builder - a builder for the application context
      Returns:
      the application builder
      See Also: