53.9申请信息
应用程序信息公开了从 InfoContributor ApplicationContext 中定义的所有beans 收集的各种信息 。Spring Boot包含一些自动配置
的 InfoContributor beans,您可以自己编写。
53.9.1自动配置的InfoContributors
在适当的情况下,Spring Boot会自动配置以下 InfoContributor beans:
名称 描述
EnvironmentInfoContributor 在 info 键下显示 Environment 中的任意键。
GitInfoContributor 如果 git.properties 文件可用,则公开git信息。
BuildInfoContributor 如果 META-INF/build-info.properties 文件可用,则公开构建信息。
可以通过设置 management.info.defaults.enabled 属性来禁用它们。
53.9.2自定义应用程序信息
您可以通过设置 info.* Spring属性来自定义 info 端点公开的数据。info 键下的所有 Environment 属性都会自动显示。例如,您可以将以下
设置添加到 application.properties 文件中:
info.app.encoding=UTF-8
info.app.java.source=1.8
info.app.java.target=1.8
您可以在构建时扩展信息属性,而不是对这些值进行硬编码 。
假设您使用Maven,您可以按如下方式重写前面的示例:
info.app.encoding=@project.build.sourceEncoding@
info.app.java.source=@java.version@
info.app.java.target=@java.version@
53.9.3 Git提交信息
info 端点的另一个有用功能是它能够在构建项目时发布有关 git 源代码存储库状态的信息。如果 GitProperties bean可用,则会公
开 git.branch , git.commit.id 和 git.commit.time 属性。
如果类路径的根目录中有 git.properties 文件,则自动配置 GitProperties bean。有关更多详细信息,请参阅“ 生成git信
息 ”。
如果要显示完整的git信息(即 git.properties 的完整内容),请使用 management.info.git.mode 属性,如下所示:
management.info.git.mode=full
53.9.4构建信息
如果 BuildProperties bean可用, info 端点也可以发布有关您的构建的信息。如果类路径中有 META-INF/build-info.properties 文件,
则会发生这种情况。
Maven和Gradle插件都可以生成该文件。有关更多详细信息,请参阅“ 生成构建信息 ”。
53.9.5编写自定义InfoContributors
要提供自定义应用程序信息,您可以注册实现该 InfoContributor 接口的Spring beans 。
以下示例使用单个值提供 example 条目:
import java.util.Collections;
import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;
@Component
public class ExampleInfoContributor implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("example",
Collections.singletonMap("key", "value"));
}
}
如果到达 info 端点,您应该看到包含以下附加条目的响应:
{
"example": {
"key" : "value"
}
}
54.通过HTTP进行监控和管理
如果您正在开发Web应用程序,Spring Boot Actuator会自动配置所有已启用的端点以通过HTTP公开。默认约定是使用端点 id 作为URL路径,
前缀为 /actuator 。例如, health 暴露为 /actuator/health 。提示:Actuator本身支持Spring MVC,Spring WebFlux和Jersey。
54.1自定义管理端点路径
有时,自定义管理端点的前缀很有用。例如,您的应用程序可能已将 /actuator 用于其他目的。您可以使
用 management.endpoints.web.base-path 属性更改管理端点的前缀,如以下示例所示:
management.endpoints.web.base-path=/manage
前面的 application.properties 示例将端点从 /actuator/{id} 更改为 /manage/{id} (例如, /manage/info )。
除非已将管理端口配置为使用其他HTTP端口公开端点,否则 management.endpoints.web.base-path 相对
于 server.servlet.context-path 。如果配置了 management.server.port ,则 management.endpoints.web.base-path 相
对于 management.server.servlet.context-path 。
如果要将端点映射到其他路径,可以使用 management.endpoints.web.path-mapping 属性。
以下示例将 /actuator/health 重新映射为 /healthcheck :
application.properties。
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck
54.2自定义Management Server端口
使用默认HTTP端口公开管理端点是基于云的部署的明智选择。但是,如果您的应用程序在您自己的数据中心内运行,您可能更喜欢使用不同的
HTTP端口公开端点。
您可以设置 management.server.port 属性以更改HTTP端口,如以下示例所示:
management.server.port=8081