SpringBoot actuator(自定義端點類)


SpringBoot actuator(自定義端點類)

 

1、編寫自動端點類很簡單,只需要在類前面使用@Endpoint注解

EndPoint中id 來表示url路徑

2、使用@ReadOperation //顯示監控指標

 

3、使用@WriteOperation //動態修改指標,以post方式修改

示例如下:

package com.caicai.springboot.study.EndPoint;

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.SimpleFormatter;

/*
* 自定義端點類
* @Endpoint //表示這是一個自定義事件端點類
* Endpoint 中有一個id //它是設置端點的URL路徑
* */
@Endpoint(id="datetime") //端點路徑不要與系統自帶的重合
public class DateTimeEndpoint {
    //一般端點都是對象,或者一個json返回的格式,所以通常我們會將端點定義一個MAP的返回形式
    // 通過ReadOperation
    //訪問地址是根據前綴+ endpoint 的ID
    // /Springboot-caicai/actuator/datetime
      private String format = "yyyy-MM-dd HH:mm:ss";

      @ReadOperation //顯示監控指標
      public Map<String,Object> info(){
          Map<String,Object> info  = new HashMap<>();
           info.put("name","caicia");
           info.put("address","幸福路1號");
           info.put("datetime",new SimpleDateFormat(format).format(new Date()));
           return info;
      }
      //動態修改指標
    @WriteOperation //動態修改指標,是以post方式修改
    public void setFormat(String format){
          this.format = format;

    }

}

4、動態修改參數,需要配置自定義配置類

使用四個注解

@Configuration //表示該類是配置類

@Bean//表示配置類為Spring boot 一個應用bean
@ConditionalOnMissingBean //條件注解1:表示當前bean缺少的時候才會注入bean
@ConditionalOnEnabledEndpoint //條件注解2:表示當監控端點被開啟的時候,才會將自定義的類注入到程序應用中

 

package com.caicai.springboot.study.EndPoint;

import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/*
* 自定義端點配置類
*
* */
@Configuration //表示該類是配置類
public class EndPointConfig {
   @Bean//表示配置類為Spring boot 一個應用bean
   @ConditionalOnMissingBean //條件注解1:表示當前bean缺少的時候才會注入bean
   @ConditionalOnEnabledEndpoint //條件注解2:表示當監控端點被開啟的時候,才會將自定義的類注入到程序應用中
   public DateTimeEndpoint dateTimeEndpoint(){

       return new DateTimeEndpoint();

   }

}

 

測試結果:

訪問地址:

http://127.0.0.1:8080/Springboot-caicai/actuator/datetime

沒修該之前時間的值:

 

 

使用POST方式進行修改

 

 

 

 

返回是正常的

 

 

 最后我們GET一下實際的結果值

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM