在開發中,有時候咱們想知道項目中在本身制定的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個路徑下的三個,只是簡單的開胃菜跟介紹而已
到這,文章就結束了!
以上,均爲本人測試而得出的結果,可能會有出入,或者錯誤,歡迎指正
歡迎轉載,請註明出處跟做者,謝謝!