2010-01-19 15 views
5

PropertyPlaceholder öğesinden @Outowired aracılığıyla bir baklaya özellik eklenmesi mümkün mü? İlkbahar 3.0 (ı Milestone 3 ila düşünüyorum) Eğer @value ("$ kullanabilirsiniz yılında@Outowired ve PropertyPlaceholder

<context:component-scan base-package="..."/> 

cevap

9

{foo.bar: fasulye yüklenir çünkü xml-bağlam config bu şekilde enjekte edemez PropertyPlaceholder öğesinden özelliklerine erişmek için

+0

Bana bunun için bir örnek verebilir? 3 rc3 bahar kullanıyorum ve bu yolu denediğimde (ör. @Value ("$ {foo.bar}")) sonra özniteliğim "foo.bar" değerini alır ... – woezelmann

+2

Evet, mülk sahibi olduğunuzu varsayalım Bu şekilde yapılandırılmış: '' , 'foo.bar' anahtar sözcüğüyle 'app.properties' anahtarından değerinizi değerine enjekte edebilirsiniz: 'class MyBean { @Value ($ {" foo.bar "} private String değeri; } – semberal

+0

Biçimlendirme için özür dilerim, burada yeniyim :) – semberal

6

Bir bahar 2.5 yaklaşım:

@Component 
public class Foo { 
    @Autowired 
    @Qualifier("myFlag") 
    private Boolean flag; 
    /* ... */ 
} 

ve bağlam

<context:component-scan base-package="..."/> 
<context:property-placeholder location="classpath:app.properties"/> 
<!-- the flag bean --> 
<bean id="myFlag" class="java.lang.Boolean"> 
    <constructor-arg value="${foo.bar}"/> 
</bean> 

Alkış

+0

+1 alternatif olarak ve biraz daha az ayrıntılı, '@Resource (name =" myFlag ")' – skaffman

İlgili konular