【发布时间】:2020-12-03 08:02:45
【问题描述】:
我正在尝试使用 Spring SpEL 表达式为我的 application.yml 配置文件中的属性派生一个值,但看起来该表达式没有得到评估。 这是我的 application.yml sn-p:
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。
我错过了什么?
【问题讨论】:
-
通常在 java
split()中采用正则表达式作为输入,而不是单个字符。也许'.'确实需要转义。试试.split('\\.')
标签: spring spring-boot spring-el