【问题标题】:Accessing file system resource in <resource mapping="" location=""访问 <resource mapping="" location="" 中的文件系统资源
【发布时间】:2015-03-27 10:41:42
【问题描述】:

我有一个 Spring 应用程序,我想从一个简单的文件系统 (D:/.../..) 获取我的静态资源。

我可以做类似的事情

mvc:resources mapping="/resources/**" location="d:/../.. .css, ...js" 

或者如果有任何其他方法可以实现这一点。

但是,我只需要在 Spring 配置文件中执行此操作。

【问题讨论】:

  • 来看看我的回答。希望对你有帮助。

标签: java spring spring-mvc


【解决方案1】:

是的

您可以从文件系统中读取文件,例如

Resource resource = appContext.getResource("file:c:\\testing.txt");

请参考 MkYong here 的完整示例。如果您正在创建 Web 应用程序,那么您应该像这样加载 appContext:

@Autowired
private ApplicationContext appContext;

【讨论】:

  • 我不必使用bean,实际上我需要将.css添加到我的jsp中。这个 .css 驻留在文件系统中。我只需要从 applicationContext.xml 中执行此操作并直接在 jsp 文件中使用密钥。
  • 嗨,在我给出的 spring 配置文件中,context:Property-placeholder location="file:D:\resources\application.properties" 我的 application.properties 中有 STATIC_RESOURCES_JS_CSS_URL。但是,它没有在 mvc:resources mapping="/resources/**" location="#{STATIC_RESOURCES_JS_CSS_URL}" 中得到解决如何做到这一点。有什么想法吗??
  • 试试这个&lt;mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/&gt; 。我们需要为文件提供目录路径。文件路径不完整。另一件事是通过/ 或`\` 来提供路径。参考:stackoverflow.com/questions/5456635/…
【解决方案2】:

您可以使用PropertyPlaceholderConfigurerclasspathWEB-INF文件系统 中读取您的属性文件,并将以下配置添加到你的 applicationContext.xml 文件:

A.类路径中的文件:

<bean id="dbProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:db.properties" />
</bean>

db.properties 文件中定义的键可以使用${key name} 读取。

示例:考虑一下,您的属性文件包含

 jdbc.url=jdbc:mysql://localhost:3306/dbName

然后您可以使用以下命令读取此属性

<property name="url" value="${jdbc.url}" />

B. WEB-INF 中的文件:

当您的属性文件位于 WEB-INF 目录下时,您只需在dbProperties bean 下添加以下代码 sn-p 它将开始在 WEB-INF 目录中查找您的属性文件应用程序。

<property name="location" value="WEB-INF/db.properties" />

C.文件系统上的文件:

当您希望从文件系统中读取文件时,只需在dbProperties bean 中添加以下代码。

<property name="location" value="file:///D:/database/db.properties" />

注意:您可以在 @987654333 中使用 file:///file: @

希望这能解决您的问题。

【讨论】:

    【解决方案3】:
    Resource res=new ClassPathResource("Yourfile");
    

    您可以按原样读取文件。

    【讨论】:

      猜你喜欢
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多