我想用ENV設置覆蓋application.properties中的任何屬性。在我的應用程序中,我使用DOT「」前綴「來定義屬性。」和後綴「破折號」(例如「 - 」)。Spring Boot:如何在Linux ENV .profile上用短劃線「 - 」覆蓋屬性?
例如:
application.server.jgroups-port= some port #
現在,我要覆蓋從OS ENV設置該屬性。
在Windows上,當我設置這個ENV屬性,這是我的結果:
第一(失敗),
Windows ENV >> APPLICATION_SERVER_JGROUPS_PORT = 5445
environment.getProperty("application.server.jgroups-port") returns NULL
二(失敗),
Windows ENV >> APPLICATION_SERVER_JGROUPSPORT = 5445
environment.getProperty("application.server.jgroups-port") returns NULL
三(THIS WORKS!),
Windows ENV >> APPLICATION_SERVER_JGROUPS-PORT = 5445
environment.getProperty("application.server.jgroups-port") returns 5445
請注意,最後一個「破折號」(例如「 - 」)。
YAY!我已經使用「短劃線」有效地設置了Windows ENV的屬性。 Spring Boot將此ENV完美地映射到應用程序屬性。但是,在Linux中,它不接受ENV中的「破折號」(例如「 - 」),因此當我使用Windows上使用的相同方法時,我的.profile文件爆炸了。>> APPLICATION_SERVER_JGROUPS-PORT = 5445.我需要做什麼來使Linux ENV設置設置我的「application.server.jgroups-port」屬性?
編輯: 它看起來像org.springframework.core.env.SystemEnvironmentPropertySource是我需要做一些工作來支持Java中的虛線屬性名稱作爲Linux ENV。例如,在SystemEnvironmentPropertySource到getProperty("somePrefix.foo-suffix")
= APPLICATION_SERVER_JGROUPS_PORT通話就像它有一個週期 - getProperty("somePrefix.foo.suffix")
它看起來像org.springframework.core.env.Sy stemEnvironmentPropertySource是我需要做一些工作的地方...就像不知何故,支持 – Jason 2015-01-27 22:49:20