如何在spring boot中外部访问环境变量?

时间:2017-05-31 06:40:17

标签: spring-boot

是否可以从一个地方访问不同application.properties的环境变量。实际上我们正在构建这个软件,我们为不同的项目(如user-asset)提供了不同的application.properties。因此可以将所有环境变量放在一个外部位置。如果是,将如何访问?

2 个答案:

答案 0 :(得分:1)

您将拥有一个application.properties文件,该文件定义的变量在您拥有的每种情况下都不会发生变化。

application.properties

server.error.whitelabel.enabled=true #Just an example

然后,您可以拥有一个单独的application.properties,其名称不同,例如 application-active.properties 。此文件将添加到基本 application.properties 文件。

application-active.properties

example.enviroment.variable=${I_AM_AN_ENVIROMENT_VARIABLE}

然后,您可以拥有一个具有相同属性名称的不同application.properties文件,在本例中为example.enviroment.variable

application-dev.properties

example.enviroment.variable=${I_AM_A_DIFFERENT_ENVIRONMENT_VARIABLE}

然后在您的代码中,您只需要根据当前配置文件获取example.enviroment.variable属性,它将获取正确的环境变量。

指定application.properites查看using profiles in spring-boot.

的内容

答案 1 :(得分:0)

如果它是一个环境变量,那么我认为多个应用程序可以访问同一个变量。

但如果它在application.properties文件中,那么我认为它不可能。

不仅如此,如果你真的觉得一个应用程序需要访问另一个应用程序的application.properties,那么我认为这不是一个正确的方法。

相反,您应该将配置外部化(可能使用类似spring-cloud-config的配置服务器)并共享应用程序之间的公共属性。