2010-07-11 53 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