2013-04-10 19 views
34

Daha önce başka bir projede çalıştım, aynı şeyi tekrar yapıyorum ama bazı nedenlerle çalışmıyor. Bahar @Value mülkiyet Dosyadan okuma değil, bunun yerine AppConfig.java anlamıylaSpring @Value, özellik dosyasından değere çözümlenmiyor

değerini alıyor

@Component 
public class AppConfig 
{ 
    @Value("${key.value1}") 
    private String value; 

    public String getValue() 
    { 
     return value; 
    } 
} 

applicationContext.xml:

<context:component-scan 
    base-package="com.test.config" /> 
<context:annotation-config /> 

<bean id="appConfigProperties" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:appconfig.properties" /> 
</bean> 

appconfig.properties

Ben benim denetleyicisi olarak
key.value1=test value 1 

:

@Autowired 
private AppConfig appConfig; 

uygulama sadece iyi başlar, ama ben

appConfig.getValue() 

yapınca It does not

${key.value1} 

döndürür Properties dosyasındaki değere gider.

Düşünceler?

+5

Çoğaltılmış http://stackoverflow.com/questions/11890544/spring-value-annotation-in-controller-class-not-evaluating-to-value-inside-pro ve http://stackoverflow.com/questions/ 5275724/spring-3-0-5-doesnt-değerlendirme-değer-açıklama-özellikleri – pedjaradenkovic

+0

Teşekkürler! Bu iş parçacığı bulamadı, bulduklarımın çoğu, NULL –

cevap

1

Pedjaradenkovic'in yorumunu okuyun.

Sağladığı bağlantıya ek olarak, bunun çalışmadığı nedeni, @Value işlemesinin PropertyPlaceholderConfigurer yerine PropertySourcesPlaceholderConfigurer olmasını gerektirir.

+1

PropertyPlaceholderConfigurer değeri benim için gayet iyi olan değerle alakalıydı.Sadece bağlamı düzeltmem gerekiyordu: uygulama bağlamında bileşen taraması xml ve bahar servlet xml –

+0

@TS Hangi yayın sürümünü kullanıyorsunuz, lütfen? – Muel

+0

Yay 3.2.2 Serbest bırakma –

40

Ben de @value olduğunu çalışmıyor nedenini, @value yerine PropertyPlaceholderConfigurer ait PropertySourcesPlaceholderConfigurer gerektirir bulundu. Aynı değişiklikleri yaptım ve benim için çalıştı, ben bahar 4.0.3 sürümü kullanıyorum. bu benim yapılandırma dosyasında kodunun altına kullanarak ben yapılandırılmış -

@Bean 
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
return new PropertySourcesPlaceholderConfigurer(); 
} 
+1

adresine bakın !!! –

+0

teşekkürler. – Steph

+0

harika çalışıyor –

4

Benim durumumda, statik alanlar enjekte edilmez.

2

İlkbahar önyükleme kullanıyordum ve benim için bu sürümü 1.4.0.RELEASE'dan 1.5.6.RELEASE'a yükseltmek bu sorunu çözdü.

İlgili konular