ホームページ >Java >&#&チュートリアル >Springboot で @configurationProperties を静的にロードする方法
通常の開発では、基本的に変更されない定数をプロパティやymlファイルなどの設定項目に入れ、起動時にのみ読み込めるようにします。どうやってするの?
Springboot の @ConfigurationProperties アノテーションと、それに対応する静的なプロパティを使用します。
ただし、操作を誤ると読み込んだデータが空になってしまいますので、その理由については以下のケースを参照してください。
//错误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; }
@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; } }
Spring が注入されるとき、set メソッドを呼び出す必要があります。このメソッドが静的メソッドの場合は、動的にインジェクトできないので、静的メソッドとして get メソッドを static に追加するだけでよく、@Data を使用する場合は、set メソッドを書き換えるだけで済みます。
以上がSpringboot で @configurationProperties を静的にロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。