本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2015/07/25/spring-boot-endpoints/
为了监控应用,Spring Boot提供了EndPoint的支持。
目前提供了十一种,其中大部分都包含默认实现,只有其中的Info需要用户自己提供。
Info的存在很大程度上可以替代AppCheck功能。
最简单添加Info信息的方式就是自己在配置中写入
info.name=app
这样访问/info
就可以获得类似这样的结果
{
name: 'app'
}
但是有一些信息是不固定的,比如版本号。
这种可以使用打包工具去完成信息的填充。比如写成
info.version=${version}
在Gradle配置中加上
processResources{
expand(project.properties)
}
当然这样写有一些问题,如果你是用了Flyway等数据库版本管理工具,那么你原声的SQL文件也会被处理,视情况而定,有很高几率信息填充会失败。
所以先过滤一下
processResources {
filesMatching('**/*.properties') { expand(project.properties) }
}
当然,有时候我们还需要一些版本库的信息,比如Git相关信息。
可以Gradle的Git插件来获取数据,然后提供给Info。
importorg.ajoberstar.grgit.Grgit
Grgit repo = Grgit.open(project.file('.'))
ext.git = [
name :repo.branch.current.name,
gitMessage:repo.head().shortMessage,
gitTime :repo.head().getDate().toLocaleString(),
gitId :repo.head().id
];
然后在配置文件中修改
info.build.version=${project.version}
info.build.name=${project.name}
info.git.name=${git.name}
info.git.commit.message=${git.gitMessage}
info.git.commit.time=${git.gitTime}
info.git.commit.id=${git.gitId}
最终效果:
{
git: {
commit: {
message:"ÇåÀígradleÎÞÓÃÅäÖÃ",
time:"2015-7-25 20:45:44",
id:"24d127abb1401437e752498a4878de5d2670f6e4"
},
name: "master"
},
build:{
name: "acgmo",
version:"0.0.2-SNAPSHOT"
}
}
这个乱码问题应该是提交中有中文,但是编译服务器是英文的。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2015/07/25/spring-boot-endpoints/