在开发中,有时候咱们想知道项目中在本身制定的bean有没有被注册上,环境属性,程序健康指标等等,幸亏springboot已经帮咱们作了这些,咱们能够经过它所提供Actuator包下提供的13个端点来进行查看,下面就让一个简单的demo来简单看看Actuator提供了哪些东西吧.java
先介绍一下开发环境:web
首先,咱们先引入依赖,在项目中引入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
------------------------------------分割线-------------------------------------
接下来,咱们测试一下 /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个路径下的三个,只是简单的开胃菜跟介绍而已
到这,文章就结束了!
以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正
欢迎转载,请注明出处跟做者,谢谢!