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
。
我正在尝试使用 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
。