2011-08-11 30 views
27

在我的Spring 3 bean中有一個Resource類型的屬性,它應該注入到類路徑中的文件的引用中。我使用@Value註釋如下,希望實現這一點。向Spring 3 bean注入類路徑資源

public class TestBean 
{ 
    @Value("classpath:/abc/student/test.sql") 
    private Resource SqlFile; 
    ... 
} 

但該屬性始終爲空。我已經確認sql文件已經部署在maven目標目錄中(它位於target/classes/abc/student/test.sql)。

我可以谷歌最接近的解決方案是thisthis它詳細的XML方式,而我有興趣使用註釋這樣做。

欣賞任何可能出錯的指針。

感謝,

維傑

回答

39

如果它要被硬編碼的樣子,然後就

private Resource sqlFile = new ClassPathResource("/abc/student/test.sql"); 

否則,你真正後

@Value("${some.property}") 
private Resource sqlFile; 

,我相信在注入屬性值時,將會應用正確的PropertyEditor。

+1

同意 - 請參閱http://stackoverflow.com/questions/6392406/populate-spring-beans-file-field-via-annotation/6392724#6392724 – sourcedelica

+0

謝謝您的回覆。兩個解決方案都有效。我更喜歡@Value方法,因爲它不允許依賴於我的代碼中的Spring類。 –

+0

你知道@Value是春季班嗎? – Wes