未指定的弹簧配置文件加载

时间:2019-01-17 18:13:27

标签: java spring spring-boot spring-profiles spring-properties

我有一个Maven / Spring引导项目,在其中看到一些奇怪的行为。总而言之,spring概要文件正在尝试加载,但是该概要文件不存在,并且在我的代码中未指定任何位置。似乎是从另一个Java命令行属性中获取了配置文件名称,这就是为什么它使我感到困惑。

基本上,我的命令行如下所示:

Java -DEnvironmentID=qa01 -jar myapp.jar com.something.package.Loader LOAD

据我从Spring文档的命令行文档中了解到的那样,我需要使用-Dspring.profiles.active=profileName参数调用java才能调用配置文件。因此,当我不执行此操作时,选择了“ qa01” 作为配置文件,我的应用程序尝试加载“ application-qa01.properties”

在测试过程中,我还注意到,对“ -DEnvironmentID”参数进行较小的修改将阻止将其作为配置文件使用(例如“ qa10”,“ qa0”,“ a01”,“ qa100”等)

这时我很困惑,无法确定为什么Spring会选择它作为配置文件参数。

1 个答案:

答案 0 :(得分:0)

以防万一将来可能对某人有所帮助:

问题出在我项目的依赖项上。依赖项碰巧使用与我自己相同的命令行参数来构建打包在jar中的特定于环境的属性文件的路径。依赖项项目恰好像Spring概要文件一样建立了属性文件名/路径,因此它最终实际上并没有与概要文件相关。当依赖项jar无法提供属性文件时,Spring继续在我的项目中寻找该文件,最终引发错误。