在Spring的application.yml上获取VCAP_APPLICATION的application_name值

时间:2017-03-02 14:34:15

标签: cloudfoundry spring-cloud

我尝试使用' logging.pattern.console'设置日志记录模式。需要包含给定应用程序的CloudFoundry应用程序名称。我知道应用程序名称可以作为VCAP_APPLICATION env变量的一部分找到,其中包含' application_name' key,我可以使用application.yml文件中提供的标准Spring占位符表示法解析Spring Cloud应用程序上的env变量;但由于变量是Json,我无法解析它,也不能使用SpEL来获取所请求的值。

是否有其他方法可以获取application.yml中manifest.yml文件中设置的应用程序名称?

1 个答案:

答案 0 :(得分:8)

如果您使用的是Spring Boot,则可以使用属性vcap.application.name访问应用程序名称。您应该能够在可用属性的任何地方引用它,例如@Value注释或application.properties。

Spring Boot' CloudFoundryVcapEnvironmentPostProcessor获取VCAP_SERVICES& VCAP_APPLICATION环境变量,并通过Spring的环境API将它们作为属性提供。这应该是自动发生的,没有配置或必要的工作。