Spring Bootの設定ファイルを変更してもリスタートする必要なしで、どうやって有効にするのか?

Spring Bootでは、アプリケーションを再起動せずに、動的に設定ファイルを更新するために@RefreshScopeアノテーションを使用することができます。

以下は実行手順です。

  1. アプリケーションプロパティ
  2. アプリケーション.yml
  3. @値
  4. @リフレッシュスコープ
  5. アクチュエーターを更新する

たとえば、MyConfigという名前の設定クラスがあり、ダイナミックに更新する必要があるmy.propertyという設定項目があるとします。

@Configuration
@RefreshScope
public class MyConfig {
    @Value("${my.property}")
    private String myProperty;

    // 省略其他代码...
}

application.propertiesファイルで、my.propertyとmanagement.endpoints.web.exposure.includeのプロパティを設定します。

my.property=Hello World
management.endpoints.web.exposure.include=*

その後、my.propertyの設定を変更した後、/actuator/refreshパスにPOSTリクエストを送信して、設定を更新することができます。

$ curl -X POST http://localhost:8080/actuator/refresh

この操作により、設定が動的にリフレッシュされ、変更した設定が再起動せずに有効になります。

bannerAds