2009-11-16 11 views

cevap

0

Bu özellik sözdizimini kullanarak, bean tanım dosyasındaki değeri açıkça enjekte ederek işe almayı başardınız mı? Teoride, eğer işe yararsa, o zaman aynı ifadeyi @Value'da kullanabilmeniz gerekir. Bu nedenle, @Autowired @Qualifier

0

'u kullanarak yapabilmeniz gerekir @Value ek açıklamasında SPEL kullanarak PropertyPlaceHolderConfigurer tarafından yüklenen özelliklere erişmek mümkün olduğunu düşünmüyorum. Harika olurdu, ama bildiğim kadarıyla, bir sonraki en iyi şey bildirmektir:

<util:properties id="props" location="classpath:xxx/yyy/app.props"/> 

Aynı özelliklere işaret edebilir sizin PropertyPlaceHolderConfigurer olarak dosya.

+1

yapabilirsiniz Test hedef fasulyesi

@Value(value="${app.value}") private String injected; 

yılında app-context.xml

<bean id="propertyConfigurer" class="MyPropertyPlaceholderConfigurer"> <property name="location"> <value>file:app.properties</value> </property> </bean> 

ayrıca kendi PropertyPlaceHolde'ınızı yaratın özelliklerini ortaya koyan rConfigurer. Burada bunun bir örneğini bulabilirsiniz: http://mortarproject.svn.sourceforge.net/viewvc/mortarproject/src/trunk/mortar-core/src/main/java/org/mortar/spring/beans/factory/config /EnhancedPropertyPlaceholderConfigurer.java?revision=70&view=markup Eski yerine yeni yerine kayıt yaptırmanız gerekir. Böylece bir kimlik belirleyebilir ve ardından değer etiketi olarak @Value (# {xxx.properties ['foo.bar']}) – pakman

+0

Ben xxx.properties dosya adı koymak gerektiğini düşünüyorum, tüm özellikleri dosyaları bahar yükler, sadece emin olmak zorunda Anahtarınız tüm özellikler dosyası arasında benzersizdir. – Ashish

+0

Bu yanlış. İlkbahar 3'ten itibaren SPEL kullanarak PropertyPlaceHolderConfigurer değerlerine erişebilirsiniz. –

15

Eski soru, ama yine de yanıtlanmaya değer. İfadeyi, orijinal PropertyPlaceholderConfigurer ile yaptığınız gibi kullanabilirsiniz.

app.properties

app.value=Injected 

bu yaklaşımı kullanarak Bahar 3.0.6

+0

Ek # {...}, işe yaramaz bir türdür (statik bir dizenin SpEL değerlendirmesini yapar). 3.x baharından beri, $ {app.value} sözdizimi @Value ek açıklamalarında desteklenir ve özelliği enjekte etmek için kullanılabilir (ancak muhtemelen bu sorunun sorulduğu sırada değildi). – MikeN

+0

Ek # {...} ile ilgili haklısınız. Bunu atlayabilir ve aynı sonucu elde edersiniz. Kurtulmak için cevabımı düzeltirim. – micfra

İlgili konular