知識庫 / Spring / Spring Boot RSS 訂閱

Spring Boot ServletInitializer 快速入門

Spring Boot
HongKong
6
02:04 PM · Dec 06 ,2025

1. 概述

在本教程中,我們將快速介紹 SpringBootServletInitializer

它是一個 WebApplicationInitializer 的擴展,可以從傳統的 WAR 歸檔中運行 SpringApplication,並部署在 Web 容器上。該類將應用程序上下文中的 ServletFilterServletContextInitializer bean 綁定到服務器。

擴展 SpringBootServletInitializer 類還允許我們在 Servlet 容器運行應用程序時配置應用程序,通過覆蓋 configure() 方法。

2. SpringBootServletInitializer

為了更具實踐性,我們將展示一個擴展 Initializer 類的示例主類。

我們的 @SpringBootApplication 類,名為 WarInitializerApplication,擴展了 SpringBootServletInitializer 類並覆蓋了 configure() 方法。該方法使用 SpringApplicationBuilder 將我們的類註冊為應用程序的配置類:

@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() {
           // ...
        }
    }
}

現在,如果我們以WAR包的形式打包我們的應用程序,我們就能以傳統的方式在任何Web容器上進行部署,這也會執行我們在 configure() 方法中添加的邏輯。

如果我們想將其打包為JAR文件,那麼我們需要將相同的邏輯添加到 main() 方法中,以便嵌入式容器也能將其拾取。

3. 結論在本文中,我們介紹了 SpringBootServletInitializer,並演示瞭如何使用它從傳統的 WAR 歸檔文件中運行 Spring Boot 應用程序。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.