2010-05-21 8 views
38

Benim uygulamamda varContext.xmlYay özellikleri (özellik-yer tutucu) otomatik kablolama

<context:property-placeholder location="classpath*:*.properties" /> 


<bean id="clientPreferencesManager" class="pl.bildpresse.bildchat2.business.ClientPreferencesManager" > 
    <property name="clientApiUrl" value="${clientapi.url}" />  
</bean> 

Aynı şeyi otomatik tel ile yapmak mümkün mü? Bir şey gibi:

@Autowired 
@Qualifier("${clientapi.url}") 
public void setClientApiUrl(String clientApiUrl) { 
    this.clientApiUrl = clientApiUrl; 
} 

cevap

76

Sen @Value kullanabilirsiniz: bahar 3.0 için

@Value("${clientapi.url}") 
public void setClientApiUrl(String clientApiUrl) { 
    this.clientApiUrl = clientApiUrl; 
} 
+0

true. (+1) – Bozho

+1

bu yüzden dolar işareti! bir karma değil. Bahşiş için teşekkürler. @Value için javadocs beni yanlış yönlendirdi –

+0

Aptal soru ama nereden $ {clientapi.url}? – user2441441

2

, doğru yolu göstermiştir biridir - bahar öncesi 3.0 için @Value("${expression}")

kullanarak, deneyebilirsin:

@Autowired 
private StringValueResolver resolver; 

Burada bir içerik başlatma sorunu yok, b ut çalışacağından emin değilim. Çözümleyiciyi kullanarak özellikleri çözebilirsiniz.

1

Çözümümün clientapi.properties dosya

clientPreferencesManager.clientApiUrl=http://localhost:8084/ClientAPI/resources/ 

Bu iyi de

5

sakınca sonra

<context:property-override location="classpath:clientapi.properties" /> 

ve kullanmaktır. Sadece anladım.

@Autowired 
@Value("${clientapi.url}") 
private StringValueResolver resolver; 

Ben bahar Bana işe yaramadı anlamak biraz zaman aldı 3.0.0.RELEASE

Şerefe

8

kullanıyorum: Sen @Autowired şey gibi eklemeniz gerekir. Her zaman $ yerine # kullandım.

EL1008E:(pos 0): Field or property 'secretkey' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' 

Sadece onu değiştirmek zorunda:

@Value("#{secretkey}') 

@Value('${secretkey}') 

için bu birilerinin zaman kazandırır umut hep mesaj geldi. Geçerli sürüm olan bahar 3.0 için

+0

Bunu engelledim ... bu düzeltildi! Teşekkürler Felix – hashcoder