7

メソッド内で @value アノテーションを使用してプロパティを読み取ることはできますか?

    void method1(){

     @Value("#{AppProperties['service.name']}") String name;
     -------
      -------
   } 
4

2 に答える 2

8

メソッド変数のアクセサ private は不適切です。

@Value アノテーションの定義を見ると、FIELD、PARAMETER、METHOD レベルにしか配置できません。

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {

したがって、名前をクラス属性またはメソッドパラメーターとして宣言します...

于 2012-09-12T15:38:19.187 に答える
7

いいえ:)注釈を使用して、クラス、フィールド、メソッド、およびそれらの引数に注釈を付けることができます。ただし、これらの注釈を処理するためにリフレクションを使用してメソッドローカル変数を取得する方法がないため、メソッドではできません。フィールドで @Value を使用し、メソッドから値を読み取ります。

于 2012-09-12T15:35:29.317 に答える