2011-08-20 13 views
23

Son bir özellik için bir özellik dosyasından Bahar enjeksiyon hakkında basit bir soru.Spring Property Enjeksiyon son bir öznitelikte @Value - Java

ben bir dosya yolu saklamak istediğiniz bir özellikler dosyası var ben özellikleri dosyaları kullandığınızda Genellikle ben kurulum sınıfı böyle bir şey kullanarak bağlıyor.

yılında Sonra
private @Value("#{someProps['prop.field']}") String someAttrib ; 

benim spring.xml ben gibi bir şey olurdu :

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

Bu iyi çalışır, basittir ve kodu güzel ve düzgün yapar. Ancak, özellik değerlerini son sınıf özniteliklerine enjekte etmeye çalışırken kullanacağınız en düzgün modelin ne olduğundan emin değilim? gibi

Açıkçası

şey:

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

çalışmaz. Başka bir yolu var mı?

Şerefe!

+2

Hayır, iki yaklaşım uyumsuz. – skaffman

cevap

24

Değerleri bir son alana enjekte etmenin tek yolu Constructor Injection. Diğer her şey, Spring'in tarafında korkunç bir saldırı olurdu.

+1

Bunun bir örneği var mı? – wheeler

0

Eğer bir örnek arıyorsanız:

public class Test { 


    private final String value; 
    public Test(@Value("${some.value}") String value){ 
     this.value=value; 
     System.out.println(authURL); 
    } 
    } 
İlgili konular