2008-10-20 35 views
6

我真的很想用註釋屬性文件中的單個屬性的引用來註釋一個方法。如何使用spring 2.5.x將單個屬性值注入到字符串中?

@Resource("${my.service.url}") 
private String myServiceUrl; 

當然,這種語法不起作用;)這就是爲什麼我在這裏問。

我知道我可以注入完整的屬性文件,但只是似乎過高,我不想要的屬性文件 - 我想要的配置價值。

編輯:我只能看到PropertyPlaceholderConfigurer示例,其中使用XML來連線的財產,以給定的領域。我仍然無法弄清楚如何通過註釋來實現這一點。

回答

4

指定屬性值有關於這個的Spring forum一個線程。簡單的答案是,真的沒有辦法使用註釋來注入單個屬性。

我聽說使用註解的支持將在Spring 3.0中得到改進,所以很可能很快就會解決這個問題。

0

如果您使用XML配置,則可以執行此操作。只需配置PropertyPlaceholderConfigurer和配置

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <value>classpath:com/foo/jdbc.properties</value> 
    </property> 
</bean> 
<bean ...> 
    <property name="myServiceUrl" value="${my.service.url}"/> 
</bean> 
7

我知道它已經從原崗位一段時間,但我已成功跨越瞭解決栽倒在這個春季2.5.X

您可以創建在Spring XML配置的「串」的實例菜豆,然後可以注入註釋組件

@Component 
public class SomeCompent{ 
    @Autowired(required=true 
    @Resource("someStringBeanId") 
    private String aProperty; 

    ... 
} 

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

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    ... 
    </bean> 
    <bean id="someStringId" class="java.lang.String" factory-method="valueOf"> 
    <constructor-arg value="${place-holder}"/> 
    </bean> 
</beans> 
+0

此解決方案不適合我。首先,遍佈整個地方似乎都有語法錯誤 - 在autowire聲明後缺少正確的paren,並且資源註釋缺少name屬性。最後,我得到一個BeanCreationException這個XML :( – IcedDante 2012-08-29 14:17:47

相關問題