2010-07-11 87 views
3

我有一個bean,它有一個File類型的屬性。我希望該屬性最終指向WEB-INF下的文件。WEB-INF中的spring資源

在我看來,ServletContextResourceLoader應該有這個工作,但不管怎樣,但我沒有嘗試似乎做的工作。

我試圖避免在Java代碼中使用類似this的東西。

回答

4

如果該屬性必須保持爲「文件」類型,那麼你將不得不跳過一些箍。

如果可能的話,將bean更好地重構爲Resource屬性會更好,在這種情況下,您可以將資源路徑作爲字符串注入,Spring將爲您構造ServletContextResource。然後您可以使用Resource.getFile()方法獲得File

public class MyBean { 

    private File file; 

    public void setResource(Resource resource) { 
     this.file = resource.getFile(); 
    } 
} 

<bean class="MyBean"> 
    <property name="resource" value="/WEB-INF/myfile"> 
</bean> 
+0

哦,我期待春天有,將採取通過資源究竟你的食譜到文件默認的資源編輯器。傻我。 我可以接受你的建議,儘管它隨後在jetty-maven-plugin中迅速遇到了一些麻煩,這是另一個問題的補充。 – bmargulies 2010-07-11 22:43:51

+0

@bmargulies:如果您嘗試將一個字符串值注入到'File'屬性中,那麼Spring將直接使用'new File(String)'將其直接轉換爲'File',這不是您所需要的。 – skaffman 2010-07-11 22:51:23