web-dev-qa-db-ja.com

@RefreshScopeが機能しない-Spring Boot

私はここで説明されているアプローチに従っています: https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties 、唯一の違いは私の場合、プロパティが複数のクラスで使用されるため、それらをすべて1つのユーティリティクラスCloudConfigに入れ、ゲッターを使用してその変数を参照します。これはクラスがどのように見えるかです:

_@Configuration
@RefreshScope
public class CloudConfig {

    static volatile int count; // 20 sec

    @Value("${config.count}")
    public void setCount(int count) {
        this.count = count;
    }

    public static int getCount() {
        return count;
    }

}
_

変数countCloudConfig.getCount()のような他のクラスで使用しています。起動時にプロパティをうまくロードできますが、動的に動的に更新することはできません。誰かが私が間違っていることを言うことができますか?この構成クラスを作成する代わりに、チュートリアルがすべてを説明しているとおりにうまく機能する場合、私はそれを自分のユースケースに適合させることに問題があります。誰か私が欠けているものを教えてもらえますか?

4
ion20

この問題に直面している他の人は、次のことを確認してください:

  1. コントローラには@RefreshScopeの注釈が付けられています
  2. スプリングブートアクチュエータは、実際にこれらのエンドポイントを提供するモジュールであるため、依存関係に追加されます。

    org.springframework.boot spring-boot-starter-actuator

  3. 更新エンドポイントが次のように更新されました。

    http:// {ip_address}:{port}/actuator/refresh

  4. エンドポイントの更新はデフォルトでは有効になっていません。次の行を追加して、bootstrap.propertiesファイルで明示的に有効にする必要があります。

    management.endpoints.web.exposure.include=*

すべてのエンドポイントを有効にしましたが、特定のエンドポイントを有効にすることもできます。

0