我有一个 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 会选择它作为配置文件参数。