You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring加载Tomcat conf下.properties文件因路径多斜杠报错及解决

解决Tomcat conf目录下application.properties的FileNotFoundException问题

我刚踩过这个一模一样的坑:明明把application.properties放在了Tomcat的conf目录里,启动项目却一直抛出FileNotFoundException: Could not open ServletContext resource异常,反复确认文件确实存在,最后才揪出问题——Spring自动拼接的路径开头多了个斜杠,变成了/D:/...../conf/app.properties,这种带前置斜杠的绝对路径格式完全无效,导致Spring找不到文件。

问题根源

Spring默认会从Servlet上下文的资源路径查找配置文件,当你试图指向Tomcat conf目录的绝对路径时,它会错误地在路径头部添加斜杠,破坏了合法的文件系统路径格式,自然找不到目标文件。

解决办法

只需要在配置location时加上file:前缀,并结合Tomcat的环境变量${catalina.base}动态指定路径即可,具体配置示例如下:

如果是注解配置:

@PropertySource(value = "file:${catalina.base}/conf/application.properties")

如果是XML配置:

<context:property-placeholder location="file:${catalina.base}/conf/application.properties"/>

这个配置的核心逻辑:

  • file:前缀明确告诉Spring要从本地文件系统读取配置,而非从Web应用的内部资源目录查找
  • ${catalina.base}会自动获取Tomcat的根目录,不管Tomcat部署在哪个路径下,都能精准定位到conf目录里的配置文件

内容的提问来源于stack exchange,提问作者user435421

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:59:09