1前書き

Spring Bootは多くの設定プロパティに対して適切なデフォルト値を提供します。それでも、ケース固有の値でこれらをカスタマイズする必要がある場合があります。

一般的な使用例は、組み込みサーバーのデフォルトポートの変更です。

このクイックチュートリアルでは、これを達成するためのいくつかの方法について説明します。


2プロパティファイルの使用

Spring Bootをカスタマイズする最も簡単で簡単な方法は、デフォルトプロパティの値を上書きすることです。

  • サーバポートの場合、変更したいプロパティは

    server.port

    です。

デフォルトでは、組み込みサーバーはポート8080で起動します。

server.port=8081

これでサーバーはポート8081で起動します。


application.yml

ファイルを使用している場合も同様に、同じことができます。

server:
  port : 8081

Mavenアプリケーションの

src/main/resources

ディレクトリに配置されている場合、両方のファイルがSpring Bootによって自動的にロードされます。

2.1. 環境固有のポート

異なる環境にデプロイされているアプリケーションがある場合は、それを各システムの異なるポートで実行することができます。

プロパティファイルのアプローチとSpringのプロファイルを組み合わせることで、これを簡単に実現できます。具体的には、環境ごとにプロパティファイルを作成できます。

たとえば、次の内容を含む

application-dev.properties

ファイルがあります。

server.port=8081

それから、別のポートを持つ

application-qa.properties

ファイルをもう1つ追加します。

server.port=8082

ほとんどの場合、プロパティファイルの設定で十分です。

ただし、この目標には他にも選択肢があるため、それらについても調べてみましょう。

3.プログラムによる設定

アプリケーションを起動するときに特定のプロパティを設定するか、組み込みサーバー設定をカスタマイズすることで、プログラムでポートを設定できます。

まず、メインの

@ SpringBootApplication

クラスでプロパティを設定する方法を見てみましょう。

@SpringBootApplication
public class CustomApplication {
    public static void main(String[]args) {
        SpringApplication app = new SpringApplication(CustomApplication.class);
        app.setDefaultProperties(Collections
          .singletonMap("server.port", "8083"));
        app.run(args);
    }
}

次に、サーバー構成をカスタマイズするために、

WebServerFactoryCustomizer

インターフェースを実装する必要があります。

@Component
public class ServerPortCustomizer
  implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {

    @Override
    public void customize(ConfigurableWebServerFactory factory) {
        factory.setPort(8086);
    }
}

これはSpring Boot 2.xバージョンに適用されることに注意してください。

Spring Boot 1.xでは、

EmbeddedServletContainerCustomizer

インターフェースを同様に実装できます。


4コマンドライン引数を使用する

アプリケーションをjarとしてパッケージ化して実行するときは、

java

コマンドで

server.port

引数を設定できます。

java -jar spring-5.jar --server.port=8083

または同等の構文を使用して:

java -jar -Dserver.port=8083 spring-5.jar

5.評価の順番

最後に、これらのアプローチがSpring Bootによって評価される順序を見てみましょう。

基本的に、設定の優先順位は次のとおりです。

  • 組み込みサーバー設定

  • コマンドライン引数

  • プロパティファイル

  • メイン

    @ SpringBootApplication

    設定

6.まとめ

このクイックチュートリアルでは、Spring Bootアプリケーションでサーバーポートを設定する方法を見ました。

例のソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-rest[GitHubで利用可能]です。