在不同的配置文件之间共享共同属性,例如:临时文件和路径的路径位置在不同的env(tst,prd)之间保持相同。
是否有办法拥有父应用程序 - {parent} .properties,所有特定于配置文件的属性文件都可以从中继承属性。
这将有助于避免在所有应用程序中编写相同的属性 - {profile} .properties
此外,每个application-{profile}.properties
都有类似的内容:
profileLocation=xxx
abc=${profileLocation}/tempPath
我可以将abc移动到一个公共位置吗?因为它在application- {profile} .properties
之前被加载,所以我无法进入application.properties
答案 0 :(得分:2)
实际上, application.properties 在任何其他人之前加载并不完全正确。它们一起处理。要设置所有配置文件使用的公共属性,应使用普通的 application.properties 文件。您应该知道的两件主要内容如下所述。
案例1。可以通过配置文件特定配置覆盖放置在 application.properties 文件中的键。
common.path.for.all.envs=/some/path
default.path=/another/path
比你的 application-dev.properties 您可以覆盖某些值。
default.path=/dev/path
在运行时使用 dev配置文件,您的应用程序可以访问两个密钥。 common.path.for.all.envs
的值将设置为/some/path
,仅在主文件中声明,default.path
将设置为/dev/path
,因为您覆盖了配置文件配置中的属性。 / p>
案例2。 application.properties 文件中定义的值可以使用占位符作为配置文件配置中包含的值。例如,在 application.properties 中定义以下变量:
abc=${profileLocation}/tempPath
接下来,在 application-dev.properties 中声明缺少的变量:
profileLocation=xxx
然后使用开发配置文件运行,abc
的值将设置为xxx/tempPath
。如您所见,配置文件配置中声明的变量也可以在主 application.properties 文件中使用。