代码之家  ›  专栏  ›  技术社区  ›  Lydon Ch

Spring框架中的文件系统资源

  •  3
  • Lydon Ch  · 技术社区  · 15 年前

    如果我在WEB-INF目录下有xml文件,那么我应该把什么路径放到servlet的FileSystemResource中来检索xml?

    i.e. BeanFactory factory = new XmlBeanFactory(new FileSystemResource("xml"));
    

    谢谢

    1 回复  |  直到 15 年前
        1
  •  2
  •   skaffman    15 年前

    你不应该使用 FileSystemResource ,您应该使用 ServletContextResource

    new ServletContextResource(servletContext, "/myfile.xml");
    

    当然,假设servletContext对您可用。

    如果你 文件系统资源 ,然后您需要询问容器目录的位置,并将其用作相对路径,例如。

    String filePath = servletContext.getRealPath("/myfile.xml");
    new FileSystemResource(filePath);
    

    不过,让Spring替你做这件事更容易。假设你有个豆子需要这个 Resource . 您可以将资源路径作为字符串注入,并让Spring将其转换为资源,例如。

    public class MyBean {
    
       private Resource myResource;
    
       public void setMyResource(Resource myResource) {
          this.myResource = myResource;
       }
    }
    

    在beans文件中:

    <bean id="myBean" class="MyBean">
       <property name="myResource" value="/path/under/webapp/root/of/my/file.xml">
    </bean>
    

    ServletContextResource服务器 把它传给你的豆子。