ホームページ > Java > &#&チュートリアル > Springboot で @configurationProperties を静的にロードする方法

Springboot で @configurationProperties を静的にロードする方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2023-05-20 23:55:04
転載
1958 人が閲覧しました

通常の開発では、基本的に変更されない定数をプロパティやymlファイルなどの設定項目に入れ、起動時にのみ読み込めるようにします。どうやってするの?

Springboot の @ConfigurationProperties アノテーションと、それに対応する静的なプロパティを使用します。

ただし、操作を誤ると読み込んだデータが空になってしまいますので、その理由については以下のケースを参照してください。

1. エラーの場合

//错误1:get\set都是静态方法
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public static void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
ログイン後にコピー
//错误2:跟第一种差不多,只是用了lombok注解代替了get\set方法,get\set也都是静态方法
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;
}
ログイン後にコピー

2. 成功の場合

@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
ログイン後にコピー
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
ログイン後にコピー

3. 理由

Spring が注入されるとき、set メソッドを呼び出す必要があります。このメソッドが静的メソッドの場合は、動的にインジェクトでき​​ないので、静的メソッドとして get メソッドを static に追加するだけでよく、@Data を使用する場合は、set メソッドを書き換えるだけで済みます。

以上がSpringboot で @configurationProperties を静的にロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート