1. 端點配置
端點自動緩存對不接收任何參數的讀寫操作的響應,配置端點將緩存響應的時間量,使用cache.time-to-live屬性;下面的示例將beans端點緩存的生存時間設置爲10秒。
application.properties:
management.endpoint.beans.cache.time-to-live=10s
- 前綴==management.endpoint.<name>==是配置端點的唯一標示。
- 在進行認證的HTTP請求時,Principal 被認爲是端點的輸入,因此不會被緩存。
2.端點的發現頁配置
在發現頁中添加所有端點的鏈接,默認情況下發現頁的地址在 /actuator下:
http://localhost:7001/actuator
當配置自定義管理上下文路徑時,發現頁的路徑自定的從 /actuator轉移到管理上下文的根路徑;例如:如果管理上下文的根路徑是 /management,那麼發現頁的根路徑就變成了 /management ;當管理上下文的根路徑設置爲 / 的時候,發現頁就會被禁用防止和其它的映射衝突。
3.跨域支持
Cross-origin resource sharing (CORS) 是一個W3C規範,這使你可以靈活的指定什麼樣的跨域請求被授權。如果你使用的是Spring MVC或者Spring WebFlux,執行器的Web端點可以配置爲支持這樣的場景。
CORS支持默認是關閉的,並且僅在 management.endpoints.web.cors.allowed-origins 屬性設置之後才起作用,下面的配置允許從example.com域中獲取GET或者POST請求。
management.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST
查看CorsEndPointProperties有關選項的完整列表。
4.自定義端點
如果你添加一個 @Bean 註解和 @EndPoint 註解,任何註解方法使用 @ReadOperation ,@WriteOperation,或者 @DeleteOperation 自動的使用JMX曝光,在Web應用程序中,也可以通過HTTP曝光;端點可以使用HTTP通過Jersy,Spring MVC, Spring WebFlux來曝光。
你還可以通過使用 @JmxEndpoint 或者 @WebEndpoint編寫特定於技術的端點。這些端點僅限於各自的技術。例如:@WebEndpoint 端點只能通過HTTP來曝光而不能通過JMX。
你可以通過==@EndpointWebExtension == 和 @EndpointJmxExtension 編寫特定於技術的擴展,這些註釋允許您提供特定於技術的操作,以增加現有端點。
最後,如果您需要訪問Web框架特定的功能,您可以實現Servlet或Spring@Controller和@RestController端點,代價是它們不能通過JMX獲得,或者當使用不同的Web框架時。
4.1接收輸入
端點通過其參數接收輸入的操作,當通過web來曝光時,這些參數的值取自URL的查詢參數和JSON請求體。當通過JMXL來曝光時,參數映射到MBeans操作的參數,參數默認是必須的額,他們可以通過 @org.springframework.lang.Nullable 註解來選擇他們。
JSON請求體中的每個根屬性可以映射到端點的參數。考慮以下JSON請求主體:
{
"name": "test",
"counter": 42
}
這可以用來調用一個帶有 String name和int counter參數的寫操作。
- 因爲端點是技術不可知的,所以只能在方法簽名中指定簡單類型。特別地,不支持聲明具有 name和counter屬性的自定義類型的單個參數。
- 允許輸入映射到操作方法的參數,實現端點的Java代碼應該編譯爲 parameters ,實現終結點的Kotlin代碼應該編譯爲 -java-parameters ,如果你正在使用Spring boot的漸變插件或者如果你使用Maven和 spring-boot-starter-parent,那麼這會自動發生。
輸入類型轉換:
傳遞給端點操作方法的參數爲,如果是必須的,自動轉換爲需要的類型;在調用操作方法之前,通過JMX或者HTTP請求接收到的輸入參數將會通過實例 ApplicationConversionService 轉換爲所需要的類型。