Spring Boot - 如何在执行器/信息端点中显示应用程序名称、版本、构建时间等

问题描述 投票:0回答:1

我看过很多关于这个主题的文章和帖子,它们的做法似乎都不同,并且在许多情况下,建议的解决方案不清楚或不起作用。 有些解决方案有效,但似乎超出了要求。

如何提供 Spring Boot 执行器 /info 端点,以便它显示应用程序名称、版本、构建时间?

spring-boot spring-boot-actuator
1个回答
0
投票

application.properties 中,如果你没有它,请在下面添加它,但你应该有它,因为这是 spring 默认添加的:

spring.application.name=myApp

,还补充:

management.endpoints.web.exposure.include=health,info,loggers

有些人建议也启用 env,但我不需要(我正在使用 spring-boot-starter-parent 2.6.7)。所以,我评论了这一行:

#management.info.env.enabled=true

另外,有些人建议在下面添加几行,但这些是不需要的,所以我将它们注释掉(如果你愿意,你可以保留它们,它们会起作用,你只会得到双重显示的应用程序名称和版本):

#info.application.name=${spring.application.name}
#[email protected]@
#[email protected]@

pom.xml 中,添加 spring-boot-maven-plugin,例如:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <!-- to expose build info in actuator/info -->
        <execution>
            <goals>
                <goal>build-info</goal>
            </goals>
        </execution>
    </executions>
</plugin>

有些人建议添加

@Configuration
bean 来设置这些,但它不是必需的,所以我没有它。

现在,当我构建 myApp 并运行它时,当我访问 /info 端点时,我会得到响应:

{
    "build": {
        "artifact": "myApp",
        "name": "myApp",
        "time": "2024-11-21T21:16:23.472Z",
        "version": "0.1.2-SNAPSHOT",
        "group": "com.example"
    }
}

如果您保留上面的

info.app.name
info.app.version
info.app.description
,您将得到另一个名为
app
的响应节点,在该节点下您将看到
name
version
description
。因此,名称和版本将会重复。

© www.soinside.com 2019 - 2024. All rights reserved.