知識庫 / Spring / Spring Boot RSS 訂閱

Spring Boot 修改應用上下文路徑

Spring Boot
HongKong
5
02:03 PM · Dec 06 ,2025

1. 概述

Spring Boot,默認情況下,

會在根上下文路徑 (“/”) 上提供內容。

雖然通常建議採用約定優於配置,但在某些情況下,我們仍然需要自定義路徑。

在本快速教程中,我們將介紹配置的不同方法。

2. 設置屬性

類似於許多其他配置選項,Spring Boot 中的上下文路徑可以通過設置屬性 server.servlet.context-path 進行更改。

請注意,這適用於 Spring Boot 2.x。對於 Boot 1.x,該屬性是 server.context-path

有多種方法可以設置此屬性,讓我們逐一瞭解它們。

2.1. 使用 <em application.properties / <em yml

最直接的方法是設置 <em application.properties/<em yml 文件中的屬性來更改上下文路徑:

server.servlet.context-path=/baeldung

與其將屬性文件放在 src/main/resources 中,我們也可以將其保留在當前工作目錄中(超出類路徑)。

2.2. Java 系統屬性

我們可以通過在上下文初始化之前設置 Java 系統屬性來設置上下文路徑:

public static void main(String[] args) {
    System.setProperty("server.servlet.context-path", "/baeldung");
    SpringApplication.run(Application.class, args);
}
<h3><strong>2.3. OS 環境變量</strong></h3>
<p>Spring Boot 也可以依賴於 OS 環境變量。在基於 Unix 的系統上,我們可以編寫:</p>
$ export SERVER_SERVLET_CONTEXT_PATH=/baeldung

在 Windows 上,設置環境變量的命令是:

> set SERVER_SERVLET_CONTEXT_PATH=/baeldung

上述環境變量適用於 Spring Boot 2.x.x 版本。  如果使用的是 1.x.x 版本,則變量為 SERVER_CONTEXT_PATH

2.4. 命令行參數

我們可以通過命令行參數動態設置屬性:

$ java -jar app.jar --server.servlet.context-path=/baeldung

3. 使用 Java 配置

現在,讓我們通過將 Bean 工廠填充一個配置 Bean,設置上下文路徑。

在 Spring Boot 2 中,我們可以使用WebServerFactoryCustomizer

@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
  webServerFactoryCustomizer() {
    return factory -> factory.setContextPath("/baeldung");
}

使用 Spring Boot 1 時,我們可以創建一個 EmbeddedServletContainerCustomizer 的實例:

@Bean
public EmbeddedServletContainerCustomizer
  embeddedServletContainerCustomizer() {
    return container -> container.setContextPath("/baeldung");
}

4. 配置優先級

由於存在眾多選項,我們可能會為同一個屬性擁有多種配置。

以下是 Spring Boot 使用的配置優先級,按降序排列:

  1. Java Config
  2. 命令行參數
  3. Java 系統屬性
  4. 操作系統環境變量
  5. 當前目錄下的 application.properties
  6. 類路徑下的 application.propertiessrc/main/resources 或打包後的 jar 文件)

5. 結論

在本文中,我們介紹了在 Spring Boot 應用程序中設置上下文路徑或其他配置屬性的不同方法。

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

發佈 評論

Some HTML is okay.