Spring 应用程序 yml 的 SpEL 表达式评估 属性

Spring SpEL expression evaluation for an application yml property

我正在尝试使用 Spring SpEL 表达式为我的 application.yml 配置文件中的 属性 派生一个值,但看起来该表达式未被计算。 这是我的 application.yml 片段:

spring:
  profiles: local
  cloud.client.hostname: abc.pqr.xyz.lmn.westus.env.company.com
  boot:
    admin:
      client:
        instance:
            metadata.tags.environment: local
            metadata.tags.dc: "#{'${spring.cloud.client.hostname}'.split('.')[4]}"
        url: http://localhost:8079

在运行时,属性 spring.boot.admin.client.instance.metadata.tags.dc 被评估为 abc.pqr.xyz.lmn.westus.env.company.com.split('.')[4] 并且期望它被评估为 westus.

我错过了什么?

SpEL 在 application.yml 中不受支持。

改为在代码中使用 @Value("#{'${spring.cloud.client.hostname}'.split('\.')[4]}" ) String property