浅尝springboot中的Actuator包(一)

在开发中,有时候咱们想知道项目中在本身制定的bean有没有被注册上,环境属性,程序健康指标等等,幸亏springboot已经帮咱们作了这些,咱们能够经过它所提供Actuator包下提供的13个端点来进行查看,下面就让一个简单的demo来简单看看Actuator提供了哪些东西吧.java

 

先介绍一下开发环境:web

  1. jdk版本是1.8
  2. springboot的版本是1.4.1
  3. 开发工具为 intellij idea

 

首先,咱们先引入依赖,在项目中引入Acturtor包,添加以下内容spring

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

 

引入包以后,咱们直接启动项目,会发现日志增长打印了一些东西,大概以下:json

 

 

 

能够发现,有13个端点.或者说是访问路径,从名字上能够看出一些端倪,例如: beans(估计是用于查看上下文中全部的bean),health(程序的健康度)等....此次,咱们就先浅浅的测试几个吧,里面涉及到内容跟安全,一篇文章介绍不完,数组

 

下面列表,大概描述下13个端点分别是作什么的浏览器

Actuator13个路径简单概述

请求方式        安全

路径 描述
GET /autoconfig 一份自动配置报告,记录了哪些自动配置经过了,哪些没经过
GET /configprops 描述属性配置注入的Bean信息     
GET /beans     应用程序下全部的Bean信息
GET /dump 获取线程活动快照
GET /env 获取所有的环境信息
GET /env/{name} 根据名称获取特性的环境信息,例如properties下的某个属性信息
GET /health 获取应用程序的健康指标
GET /info 获取应用程序的有info开头的定制信息
GET /mappings 获取所有的URL的映射关系
GET /metrics 应用程序的度量信息,例如内存使用量,HTTP请求数
GET /metrics/{name} 获取指定名称的应用程序信息
GET /shutdown

关闭应用程序,默认是false,能够经过endpoints.shutdown.enable=true开启springboot

GET /trace 获取HTTP请求的基本信息,例如:请求头,时间戳等

 

 

 

------------------------------------分割线-------------------------------------服务器

咱们首先测试 /beans 或者/beans.json 路径,查看上下文中有哪些bean被注册了app

在浏览器输入 localhost:8080/beans(首先,确认,你没有更改本地服务器的端口号,若是修改了,对应修改后的端口就行了),会获得如下内容....

 

PS:由于浏览器返回的,太乱了,我格式化了一下JSON,这样看起来会舒服一些,上面的截图只是一部分,本身测试会发现有不少内容,这就不截图了,这只是作一个展现做用.

上图能够发现,有不少字段,下面作个表格,列出每一个字段的含义,以及表述

一级目录有三个字段,分别是context,parent,beans

  1. context:上下文名称,以及配置环境,端口号
  2. parent: 是否有父类,null表示无
  3. beans: 是个数组,内部包含应用内全部的bean
    1. bean: BeanID
    2. scope: Bean的做用域
    3. type: Bean在项目下的路径
    4. resource: 资源文件的完整路径
    5. dependencies: 当前Bean注入的beanID列表
    6. aliases: Bean是否有别名,没有的话,默认空数组

 

------------------------------------分割线-------------------------------------

接下来,咱们测试一下 /env 或者 /env.json路径,查看下环境属性,例如:环境变量,JVM属性,properties或者yml文件提供的属性

 

在浏览器输入 localhost:8080/env,会获得一大堆内容,我也只展现一部分格式化后删除了一些我我的电脑信息的内容,下面内容会在属性后面添加注释,不在单独列出来讲明了!!!

 

{
  "profiles": [ //读取的哪一个环境的文件,
                //能够在yml或者properties文件内添加 spring.profiles.active=来执行,这里我指定的是test
    "test"
  ],
  "server.ports": {//服务器的端口号
    "local.server.port": 8081
  },
  "servletContextInitParams": {//servlet初始化的一些值,若是指定了,那么这里会显示
    
  },
  "applicationConfig: [classpath:/application.yml]#test": {//测试环境下指定添加的内容
    "spring.profiles": "test",
    "spring.jackson.generator": true,
    "amazon.bookName": "SpringBoot-test",
    "server.port": 8081
  },
  "applicationConfig: [classpath:/application.yml]": {//yml文件下,通用的一些配置属性
    "logging.level": "info",
    "logging.org.springframework.web": "info",
    "debug": false,
    "spring.profiles.active": "test"
  },
  "class path resource [userbean.properties]": {//properties文件下,一些配置属性
    "hexiaowu.name": "hexiaowu",
    "hexiaowu.userAge": "23",
    "hexiaowu.userName": "name",
    "hexiaowu.age": "23"
  }
}

 

从返回的东西,能够看到,一些系统环境属性,以及properties或者yml文件内的内容都显示出来了,PS:原本还有一个systemEnviromment的,我给删了,涉及到一些信息,不方便展现,见谅,读者测试的时候,能够查看本身的.

 

--------------------------------分割线-----------------------------------------

 

经过 /env/{name} 经过属性名来获取指定的属性信息,例如,我要获取hexiaowu.name对应的value,能够这么访问:http://localhost:8080/env/hexiaowu.name 会获得如下结果:

{"hexiaowu.name":"hexiaowu"}

 

 

--------------------------------分割线-----------------------------------------

 

最后,咱们测试一下  /configprops或者/configprops.json路径,来获取配置属性注入的Bean信息等,

PS:下面只展现我配置的一些自定义属性,系统的属性,这就不展现了

 

访问如下路径:http://localhost:8080/configprops.json 或者http://localhost:808/configprops均可以,而后会获得一些内容,我下面就截取我配置的一些内容:

 

"propertiesVo": {//注入的BeanID
    "prefix": "hexiaowu", //属性名称前缀
    "properties": { //属性名称以及值,对应Bean内的字段名称
      "name": "hexiaowu",
      "userName": "name",
      "age": "23",
      "userAge": "23"
    }
  }

 

 

 

以上,就是Actuator包下,13个路径下的三个,只是简单的开胃菜跟介绍而已

 

到这,文章就结束了!

以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正

欢迎转载,请注明出处跟做者,谢谢!

相关文章
相关标签/搜索