SpringBoot actuator(自定义端点类)

2021-03-04 04:27

阅读:463

标签:tco   oid   poi   结果   boot   col   style   png   int   

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 info(){
          Map 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一下实际的结果值

 

技术图片

 

SpringBoot actuator(自定义端点类)

标签:tco   oid   poi   结果   boot   col   style   png   int   

原文地址:https://www.cnblogs.com/caicai920/p/14375130.html


评论


亲,登录后才可以留言!