【发布时间】:2021-07-03 06:47:27
【问题描述】:
我是 Springboot 新手,在外部化我的属性文件时遇到了麻烦。 我有多个“.properties”文件保存在子目录“config/”中。我已经从我的项目中删除了上下文占位符,并在执行 jar 时包含了逗号分隔的属性文件。
例如。 java -jar myjar.jar --spring.config.location=file:////config/PROP1.properties, file:///config/PROP2.properties -debug
我有几个问题
- 为什么 config 目录中的文件即使在明确提到要查看的位置后也没有被读取?
- 我在项目中有自己的依赖项,在其 jar 中打包了同名的属性文件。当 SpringBoot 在执行我的项目 jar 时尝试从 config 文件夹中读取文件时,这会产生任何问题吗?
更新
现在我只保留一个属性文件,假设 ABC.properties 在同一目录中的 jar 之外。我使用名称“ABC”而不是“应用程序”。我正在使用以下命令
java -Dserver.log.dir=/path/to/log/dir -jar myjar.jar --server.port=9090 --spring.config.name=ABC --prop1=val1
我已经覆盖了我的外部属性文件中的一个属性,但是在我运行应用程序时我没有看到被覆盖的值。我的新问题是
-
命令行有什么问题吗?
-
我在 xml bean 配置中有以下行
。这是否会导致检测和使用外部属性出现任何问题? -
如果上述情况属实,我必须删除该行 SpringBoot 将如何理解从何处导入属性值?
-
(与问题没有直接关系)在给出命令行参数时我需要遵循一个顺序吗?
【问题讨论】:
-
您是从
/运行您的应用程序吗?如果不是,我认为您的位置 URL 可能是错误的。 -
打错字了
-
什么是错字?在您编辑后,这些 URL 对我来说仍然是错误的。当前的两个答案都解释了原因。
-
错字是 spring.config.location 前面的一个“-”。我没有编辑 URL,因为这些是我在命令中使用的。
标签: java spring spring-boot