【发布时间】:2022-12-15 09:26:08
【问题描述】:
我正在使用 Spring Boot 2.7.5 使用时@价值注入值形式的注解应用程序.properties文件,对下的变量进行空赋值@配置班级。
例子:
@Value("${file.name}")
private String fileName;
在这里我看到了对变量的赋值文件名理想情况下它应该赋值'${文件名}'如果密钥不匹配。但是空分配意味着项目中出现了一些问题(至少我是这么认为的,我需要这方面的专家 cmets)。
同样的事情在另一个项目中起作用,但在这个特定项目中却没有。
如果我的问题不够详尽,请告诉我,我会尝试详细解释
我的问题是,为什么它在其他项目中有效,但在这个项目中却无效。我需要检查哪些配置可能出错。已经通过多个 stackoverflow 解决方案并验证了以下所有内容:
- application.properties 文件拼写检查
- 在使用@Value 的类顶部的@Configuration 注释
- 所有键的键值对分配和拼写检查
- 库导入没有问题
- 尝试添加@PropertySource("类路径:foo.properties")
- 导入 org.springframework.beans.factory.annotation.Value;
- 资源文件夹被正确标记为'资源根'
-
临时替代
private Properties props = new Properties(); props.load(VaultCredential.class.getResourceAsStream("/application.properties")); props.getProperty("file.name");
【问题讨论】:
-
您是否已确认您使用的是正确的
@Value注释? -
@Turing85 导入 org.springframework.beans.factory.annotation.Value;也添加到列表中的第 6 位
-
你能提供一个minimal reproducible example吗?以 git 存储库的形式?
-
@Turing85 我可以,但遗憾的是,它在我试图复制它的其他示例项目中工作,但在我正在处理的项目中却没有,而且它无法共享。所以我正在寻找我需要研究的选项,比如项目配置或拼写检查或资源文件夹标记或我在这里肯定缺少的任何东西。
-
使用
--trace运行程序以检查您的 application.properties 是否已加载。
标签: java spring spring-boot spring-mvc spring-annotations