到目前为止,我发现有两种方法可以在启动时配置Spring Boot应用程序。其中一种使用-D
,另一种使用--
,就像这样:
java -jar -Dspring.profiles.active=test app.jar
java -jar --spring.profiles.active=test app.jar
有时第一个有效,有时第二个有效。作为一名开发者发现,在下面示例的
run
方法未提供args
参数时,--
方法不起作用,但-D
有效。public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
今天我在命令行配置logback时发现
-Dlogback.configurationFile=/full_path/logback.xml
无效,但--logging.config=file:logback.xml
有效。可能还有其他原因,比如
logback.configurationFile
拼写错误,但它们的区别类似于-D
和--
。我的问题是什么是
-D
和--
,它是Java或Spring的东西吗?为什么会有有效无效之分?