为什么 spring-cloud-config 不扩展 spring-boot-actuator 的属性?

Why does spring-cloud-config not expand properties for spring-boot-actuator?

我设置了 spring-boot-actuator 和 spring-cloud-config。我设置了类似于以下内容的各种属性:

info.app.name=@project.name@
info.app.version=@project.version@

如果我将这些属性放在 application.properties 中,那么我会得到:

{
  "app" : {
    "name" : "project-name",
    "version" : "1.2.3",
<more is ommitted>

但是如果我把它放在 spring-cloud-config 中,我会得到以下信息:

{
  "app" : {
    "name" : "@project.name@",
    "version" : "@project.version@",
<more is ommitted>

我不明白为什么会这样,因为我希望配置能够为它提供服务,执行器能够扩展它。这是一个错误吗?

谢谢。

@project.name@@project.version@application.properties 中的分辨率是 performed at build time,不是在运行时。所以当你的应用程序运行时,jar文件中的application.properties包含:

info.app.name=project-name
info.app.version=1.2.3

Spring Boot 或 Spring Cloud Config 中没有任何内容可以在运行时解析 @project.name@ 等占位符,因此当这些属性从 Config Server 中提取时,您将获得文字属性值。