当前位置: 首页 > 知识库问答 >
问题:

如何在/info执行器endpoint中获取Spring Boot的版本

辛麻雀
2023-03-14

可以在横幅中包含Spring Boot版本。txt通过添加${spring boot.version}。

如何对/info执行器endpoint执行相同的操作?我尝试将以下两个都添加到我的应用程序属性中,但没有成功:

  • info.app.spring-boot.version=${spring-boot.version}
  • info.app.spring-boot.version=@spring-boot.version@

endpoint将打印“${spring boot.version}”(或“@spring boot.version@”),但不会解析占位符变量

我的下一个想法是为Spring Boot版本创建一个Maven属性,并在父部分引用它,如下所示

<properties>
    <spring.boot.version>1.5.3.RELEASE</spring.boot.version>
</properties>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>${spring.boot.version}</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

但这不起作用,因为Maven在处理<代码>

以下方法确实有效,但并不理想:

@Component
public class MyInfoContributor implements InfoContributor {
    @Override
    public void contribute(Info.Builder builder) {

        builder.withDetail("spring-boot.version", SpringBootVersion.getVersion());
    }
}

共有2个答案

袁泰
2023-03-14

正如您在更新中提到的,可以使用InfoContributor根据SpringBootVersion中的值添加此属性:

@Component
public class SpringBootVersionInfoContributor implements InfoContributor {
    @Override
    public void contribute(Info.Builder builder) {
        builder.withDetail("spring-boot.version", SpringBootVersion.getVersion());
    }
}

这似乎是添加此细节的一种非常可靠的惯用方法。

邢博涛
2023-03-14

这应该有效:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <additionalProperties>
      <spring-boot-version>${spring.boot.version}</spring-boot-version>
    </additionalProperties>
  </configuration>
</plugin>

那么你就不需要这个应用了。信息属性。

 类似资料: