[解決済み] Spring: 静的フィールドに値を注入するには?
2022-10-29 22:08:35
質問
このクラスで
@Component
public class Sample {
@Value("${my.name}")
public static String name;
}
もし私が
Sample.name
を実行すると、常に「null」になってしまいます。そこで、こんなことをやってみました。
public class Sample {
public static String name;
@PostConstruct
public void init(){
name = privateName;
}
@Value("${my.name}")
private String privateName;
public String getPrivateName() {
return privateName;
}
public void setPrivateName(String privateName) {
this.privateName = privateName;
}
}
このコードは動作します。
Sample.name
は正しく設定されています。これは良い方法なのでしょうか?もしそうでないなら、何かもっと良い方法があるのでしょうか?また、どのようにそれを行うのですか?
どのように解決するのですか?
まず最初に
public static
非
final
のフィールドは
悪
. Springはこのようなフィールドへのインジェクションを許さない理由があります。
あなたの
回避策
は有効で、getter/setter さえ必要ありません。
private
フィールドで十分です。一方、次のようにしてみてください。
@Value("${my.name}")
public void setPrivateName(String privateName) {
Sample.name = privateName;
}
(を使うことができます。
@Autowired
/
@Resource
). しかし、建設的なアドバイスをするために 2 番目のクラスは
private
フィールドとゲッターを持つ
public static
フィールドの代わりに
関連
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み] java:comp/env/は何をするところですか?
-
[解決済み] Spring @PostConstruct と init-method 属性の比較
-
[解決済み] Spring Dataです。"delete by "はサポートされていますか?
-
[解決済み] Spring Boot JPA - 自動再接続の設定
-
[解決済み] Spring CrudRepositoryで大文字小文字を区別しないクエリ
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
-
[解決済み] Spring BeanPostProcessorは具体的にどのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 静的フィールドで @Autowired を使用できますか?
-
[解決済み] Spring Data JPAでネイティブクエリ結果をNon-Entity POJOにマップする。
-
[解決済み] Spring Boot Rest Controllerは、異なるHTTPステータスコードを返すには?
-
[解決済み] java:comp/env/は何をするところですか?
-
[解決済み] Spring @PostConstruct と init-method 属性の比較
-
[解決済み] Spring CrudRepositoryで大文字小文字を区別しないクエリ
-
[解決済み] Maven依存性 spring-webとspring-webmvcの比較
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
-
[解決済み] Spring BeanPostProcessorは具体的にどのように動作するのですか?
-
[解決済み] Spring BootとMongoDBへの接続設定方法