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

Posted

技术标签:

【中文标题】在 Spring 的 application.yml 上获取 VCAP_APPLICATION 的 application_name 值【英文标题】:Obtain VCAP_APPLICATION's application_name value on Spring's application.yml 【发布时间】:2017-07-22 08:15:20 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢。正是我想要的:D

以上是关于在 Spring 的 application.yml 上获取 VCAP_APPLICATION 的 application_name 值的主要内容,如果未能解决你的问题,请参考以下文章

Grails 3 - 更改运行应用程序的默认端口

小白入门之 Springboot整合SSM

使用druid的监控组件进行数据库连接池的监控

Logback - 你能从 env 变量中定义 appender 名称和类吗?

如何在Maven中配置Spring依赖

Spring Framework,Spring Security - 可以在没有 Spring Framework 的情况下使用 Spring Security?