1. 概要

Spring Boot、デフォルトでは、 はルートコンテキストパス( “/”)上のコンテンツを提供します。

通常、設定より規約を優先することをお勧めしますが、カスタムパスが必要な場合もあります。

このクイックチュートリアルでは、さまざまな構成方法について説明します。

2. プロパティの設定

他の多くの構成オプションと同様に、Spring Bootのコンテキストパスは、プロパティserver.servlet.context-pathを設定することで変更できます。

これはSpringBoot2.xで機能することに注意してください。 Boot 1.xの場合、プロパティはserver.context-pathです。

このプロパティを設定する方法は複数ありますので、1つずつ見ていきましょう。

2.1. application.properties / ymlを使用する

コンテキストパスを変更する最も簡単な方法は、 application.properties / 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);
}

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. JavaConfigの使用

次に、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. JavaConfig
  2. コマンドライン引数
  3. Javaシステムのプロパティ
  4. OS環境変数
  5. 現在のディレクトリのapplication.properties
  6. クラスパス内のapplication.properties src / main / resources またはパッケージ化されたjarファイル)

5. 結論

この簡単な記事では、SpringBootアプリケーションでコンテキストパスまたはその他の構成プロパティを設定するさまざまな方法について説明しました。