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

Obtain VCAP_APPLICATION's application_name value on Spring's application.yml

我正在尝试使用 'logging.pattern.console' 设置日志记录模式,该模式需要包含给定应用程序的 CloudFoundry 应用程序名称。我知道可以使用 'application_name' 键将应用程序名称作为 VCAP_APPLICATION env 变量的一部分找到,并且我可以使用标准 Spring 在 Spring 云应用程序上解析 env 变量占位符符号,在 application.yml 文件中可用;但由于变量是 Json,我无法解析它,也无法使用 SpEL 仅获取请求的值。

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

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

Spring Boot 的 CloudFoundryVcapEnvironmentPostProcessor 采用 VCAP_SERVICESVCAP_APPLICATION 环境变量,并通过 Spring 的环境 api 使它们作为属性可用].这应该会自动发生,无需配置或工作。