Spring Boot Change Context Path


1.概述

默認情況下,Spring Boot 在根上下文路徑(“/”)上提供內容

雖然通常情況下,優先考慮約定優於配置,但有些情況下我們確實希望擁有自定義路徑。

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

2.設置屬性

與許多其他配置選項一樣,可以通過設置屬性(即server.servlet.context-path)來更改Spring Boot中的上下文路徑

請注意,這適用於Spring Boot 2.x.

對於Boot 1.x,該屬性為  server.context-path

設置此屬性有多種方法,讓我們逐一查看。

2.1.使用  application.properties  / yml

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

server.servlet.context-path=/baeldung

我們也可以將它保存在當前工作目錄(類路徑之外)中,而不是將屬性文件放在src/main/resources

2.2.Java系統屬性

在初始化上下文之前,我們還可以將上下文路徑設置為Java系統屬性:

1 public static void main(String[] args) {
2     System.setProperty("server.servlet.context-path", "/baeldung");
3     SpringApplication.run(Application.class, args);
4 }
 

2.3.OS環境變量

Spring Boot也可以依賴OS環境變量。在基於Unix的系統上,我們可以編寫:

export SERVER_SERVLET_CONTEXT_PATH=/baeldung

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

set SERVER_SERVLET_CONTEXT_PATH=/baeldung

在上述環境變量是springboot2.xx的,  如果我們用1.XX,變量是SERVER_CONTEXT_PATH

2.4.命令行參數

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

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

3.使用Java Config

現在讓我們通過使用配置bean填充bean工廠來設置上下文路徑。

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

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

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

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

4.配置的優先順序

有了這么多選項,我們最終可能會為同一個屬性配置多個配置。

下面是降序的優先級順序 Spring Boot用它來選擇有效的配置:

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

5.結論

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM