首页 > 解决方案 > Spring找不到属性文件

问题描述

我尝试了所有方法来查找文件,但总是遇到此异常:

java.io.FileNotFoundException:类路径资源 [src/main/resources/sport.properties] 无法打开,因为它不存在

这是我的文件夹结构:

文件夹结构

此字符串中的哪个路径是正确的?@PropertySource("classpath:/src/main/resources/sport.properties")

标签: spring

解决方案


此字符串中的哪个路径是正确的?@PropertySource("classpath:/src/main/resources/sport.properties")

这是不正确的,因为您混淆了两个“名称空间”。

  • 该字符串"classpath:/src/main/resources/sport.properties"是一个 URI。

  • "classpath"意味着您告诉 Spring 查看应用程序的运行时类路径。

  • "/src/main/resources/sport.properties"不是运行时类路径上的名称。相反,它是文件系统中相对于 Eclipse 项目目录的路径名。

由于您在 Eclipse 中使用 Maven,因此您需要了解资源树已添加到您的类路径中;即"${MAVEN_PROJECT}/src/main/resources/a/b"成为"/a/b"运行时类路径。

  • "${MAVEN_PROJECT}/src/main/resources"构成您的应用程序的所有 Maven 项目的目录都以这种方式添加到类路径中。

  • 单元测试时,"${MAVEN_PROJECT}/src/test/resources"目录也会添加到类路径中。


简而言之,您可能应该使用 @PropertySource("classpath:/sport.properties")


推荐阅读