在 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_SERVICES
和 VCAP_APPLICATION
环境变量,并通过 Spring 的 Environment api 将它们作为属性提供。这应该自动发生,无需配置或工作。
【讨论】:
谢谢。正是我想要的:D以上是关于在 Spring 的 application.yml 上获取 VCAP_APPLICATION 的 application_name 值的主要内容,如果未能解决你的问题,请参考以下文章
Logback - 你能从 env 变量中定义 appender 名称和类吗?
Spring Framework,Spring Security - 可以在没有 Spring Framework 的情况下使用 Spring Security?