2011-08-20 13 views
23

最終属性のプロパティファイルからのSpringインジェクションに関する簡単な質問です。最終属性のSpringプロパティ注入@Value - Java

は、私は、ファイルのパスを保存したいプロパティファイルを持っている私は、プロパティファイルを使用する際に一般的に私セットアップクラスは、このようなものを使用して属性:。

でその後
private @Value("#{someProps['prop.field']}") String someAttrib ; 

spring.xml私のようなものを持っているでしょう:

<util:properties id="someProps" 
    location="classpath:/META-INF/properties/somePropFile.properties" /> 

これはうまく動作し、シンプルでコードが素敵ですっきりします。しかし、私は最終的なクラスの属性にプロパティ値を注入しようとするときに使う最も綺麗なパターンは何か分かりません。

ような何か明らかに

private static final @Value("#{fileProps['dict.english']}") String DICT_PATH; 

が動作しません。別の方法がありますか?

乾杯!

+2

いいえ、2つのアプローチは互換性がありません。 – skaffman

答えて

24

最後のフィールドに値を注入できる唯一の方法は、Constructor Injectionです。他のすべては、Springの側でひどいハックになるでしょう。

+1

この例はありますか? – wheeler

0

あなたが例を探している場合:

public class Test { 


    private final String value; 
    public Test(@Value("${some.value}") String value){ 
     this.value=value; 
     System.out.println(authURL); 
    } 
    } 
関連する問題