首页 > 解决方案 > Spring Boot - Spring.config.location

问题描述

我有一个奇怪的场景,我希望我能得到一些帮助。

我在服务器位置有一个 Spring Boot 应用程序。我使用 --spring.config.location 属性在外部文件路径中指定 application.properties。我的 Spring Boot 应用程序还需要一个与 application.properties 位于同一路径中的属性文件(可以说是应用程序除了 application.properties 还需要的 common.properties)。

我正在使用调度工具来调用 spring boot jar,当我这样做时,我使用下面的命令

{java的路径}/java -jar {jar的路径} --spring.config.location={application.properties和common.properties的路径}/application.properties,{application.properties和common.properties的路径}/ common.properties

jar 和属性文件所在的路径太长,以至于我的调度工具不接受配置以触发作业。我想知道是否有一种方法可以摆脱使用 {path of application.properties and common.properties} 来为 application.properties 和 common.properties 分别指定 2 次。

注意:我不想在 java 代码中的任何地方配置它。

标签: spring-boot

解决方案


您可以将目录传递给--spring.config.location

不幸的是,Spring 将仅加载文件 application.propertis 和配置文件特定文件,例如application-{profile name}.properites

如果对您来说使用特定配置文件不是问题(您不使用配置文件特定的 Benas exc。)您可以将您的 common.properties 文件重命名为application-common.properties并启动您的应用程序:

{path of java}/java -jar {path of jar} --spring.config.location=/path/of/both/properties --spring.profiles.active=common

请记住,这样 application-common.properties 将覆盖 application.properties 中的任何公共属性(与基于配置文件的属性一样)


推荐阅读