月度归档: 2015 年 7 月

  • Spring boot中的Info Endpoint

    为了监控应用,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 
    …