如何用jcabi-manifests向Spring Boot Actuator /info端点添加应用信息
用jcabi-manifests给Spring Boot Actuator /info端点加应用信息
我最近在折腾一个需求:把应用名称和版本号这类元数据,通过jcabi-manifests库放到Spring Boot Actuator的/info端点里。目前已经写了部分代码和Gradle配置,分享出来给大家参考:
自定义InfoContributor实现类
首先写了一个InfoContributor的组件,用来读取Manifest里的属性并加到/info响应中:
@Component public class VersionInfoContributor implements InfoContributor { @Override public void contribute(Info.Builder builder) { String artifactName = Manifests.read("Artifact-Name"); builder.withDetail("Artifact-Name", artifactName); } }
Gradle中配置Manifest属性
然后在build.gradle的jar任务里,配置Manifest的Artifact-Name属性:
jar { manifest { attributes("Artifact-Name": "你的应用名称") // 这里替换成实际的应用名 } }
扩展:添加版本信息
如果还要加版本号的话,只需要稍微修改一下代码和Gradle配置就行:
更新后的Java代码
@Component public class VersionInfoContributor implements InfoContributor { @Override public void contribute(Info.Builder builder) { String artifactName = Manifests.read("Artifact-Name"); String appVersion = Manifests.read("Version"); // 可以自定义返回的键名,比如改成更友好的"appName"和"appVersion" builder.withDetail("appName", artifactName) .withDetail("appVersion", appVersion); } }
更新后的Gradle配置
jar { manifest { attributes( "Artifact-Name": "你的应用名称", "Version": project.version // 直接用项目定义的version,也可以写死比如"1.0.0-SNAPSHOT" ) } }
最后别忘了确保Spring Boot Actuator的info端点已经开启,不然访问/actuator/info会看不到内容哦~
内容的提问来源于stack exchange,提问作者Alex Kamornikov
相关产品推荐
相关产品推荐

