Spring Boot2.x如何自定義Endpoint
概述
在使用Spring Boot的時(shí)候我們經(jīng)常使用actuator,健康檢查,bus中使用/refresh等。這里記錄如何使用注解的方式自定義Endpoint??捎糜跐M足一些服務(wù)狀態(tài)監(jiān)控,或者優(yōu)雅停機(jī)等。
準(zhǔn)備
Spring Boot項(xiàng)目,pom中加入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
編寫自定義Endpoint
@Configuration
@Endpoint(id = "my-endpoint")
public class MyEndpoint {
@ReadOperation
public Map<String, Object> endpoint() {
Map<String, Object> map = new HashMap<>(16);
map.put("message", "this is my endpoint");
return map;
}
}
1.配置
management.endpoints.web.exposure.include=my-endpoint
2.啟動(dòng)&測(cè)試
啟動(dòng)后可以看到日志:
Mapped "{[/actuator/my-endpoint],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
3.注意
- @EndPoint中的id不能使用駝峰法,需要以-分割。
- @Spring Boot會(huì)去掃描@EndPoint注解下的@ReadOperation, @WriteOperation, @DeleteOperation注解,分別對(duì)應(yīng)生成Get/Post/Delete的Mapping。注解中有個(gè)produces參數(shù),可以指定media type, 如:application/json等。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java模擬實(shí)現(xiàn)HashMap算法流程詳解
在java開發(fā)中,HashMap是最常用、最常見(jiàn)的集合容器類之一,文中通過(guò)示例代碼介紹HashMap為啥要二次Hash,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02
springboot接收J(rèn)SON實(shí)現(xiàn)示例解析
這篇文章主要為大家介紹了springboot如何接收J(rèn)SON的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
JpaRepository如何實(shí)現(xiàn)增刪改查并進(jìn)行單元測(cè)試
這篇文章主要介紹了JpaRepository如何實(shí)現(xiàn)增刪改查并進(jìn)行單元測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring Boot 啟動(dòng)端口如何啟動(dòng)
這篇文章主要介紹了Spring Boot 啟動(dòng)端口如何啟動(dòng)的相關(guān)資料,需要的朋友可以參考下2016-12-12

