spring - Spring找不到属性文件
问题描述
我尝试了所有方法来查找文件,但总是遇到此异常:
java.io.FileNotFoundException:类路径资源 [src/main/resources/sport.properties] 无法打开,因为它不存在
这是我的文件夹结构:
此字符串中的哪个路径是正确的?@PropertySource("classpath:/src/main/resources/sport.properties")
解决方案
此字符串中的哪个路径是正确的?
@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")
推荐阅读
- r - How to attach CI on dot graphs for weighted means (y-axis) at multiple factor levels (x-axis) in R?
- java - BeanUtils Java 的替代品(错误 SonarQube)
- java - 调试 Java 餐价计算器
- azure - 死信队列的警报在 Azure 服务总线中未按预期工作
- google-sheets - 如果 B 列中同一行上的文本是唯一的,我希望将 1 添加到谷歌表格中的框中
- javascript - Woocommerce 结帐 scroll_to_notices
- javascript - apollo react hooks中fetchMore函数的updateQuery似乎没有做任何事情
- parallel-processing - 使用 OpenMP 缩减时的精度损失
- java - java中带有3个验证参数的输入验证
- reactjs - GLTF 文件部分加载为黑色 ThreeJS、React、Typescript、如何为所有 3D 对象添加颜色/灯光