当前位置: 首页 > news >正文

java:spring actuator添加自定义endpoint

# 项目代码资源:

可能还在审核中,请等待。。。
https://download.csdn.net/download/chenhz2284/89437274

# 项目代码

【pom.xml】

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId><version>2.3.12.RELEASE</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency>
</dependencies>
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.13.0</version><configuration><compilerArgs><!--添加编译参数【-parameters】很重要,没有这个参数的话【/actuator/chzEndpoint/p1】这个地址无法访问--><arg>-parameters</arg></compilerArgs></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.12.RELEASE</version><executions><execution><phase>package</phase><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>

【application.properties】

server.port=8080
spring.application.name=myActuatormanagement.server.port=8080
management.endpoints.web.exposure.include=*

【ChzEndpoint.java】

package com.chz.myActuator.actuator;@Slf4j
@Component
@Endpoint(id = "chzEndpoint")
public class ChzEndpoint {private Map<String, Feature> features = new ConcurrentHashMap<>();@PostConstructpublic void init(){log.info("chz >> ChzEndpoint.<init>()");Feature p1Feature = new Feature();p1Feature.setEnabled(true);p1Feature.setName("p1");p1Feature.setValue(1D);features.put("p1", p1Feature);Feature p2Feature = new Feature();p2Feature.setEnabled(true);p2Feature.setName("p2");p2Feature.setValue(2D);features.put("p2", p2Feature);}// 请求地址为【GET /actuator/chzEndpoint】@ReadOperationpublic Map<String, Feature> features() {log.info("chz >> ChzEndpoint.features()");return features;}// 请求地址为【GET /actuator/chzEndpoint/p1】@ReadOperationpublic Feature feature(@Selector String name) {log.info("chz >> ChzEndpoint.feature(@Selector String name)");return features.get(name);}// 请求地址为【POST /actuator/chzEndpoint/p1】@WriteOperationpublic void putFeature(@Selector String name, Double value) {log.info("chz >> ChzEndpoint.putFeature(@Selector String name, Feature feature)");Feature feature = features.get(name);if( feature!=null ){feature.setValue(value);} else {feature = new Feature();feature.setEnabled(true);feature.setName(name);feature.setValue(value);feature.setTime(LocalDateTime.now());features.put(name, feature);}}// 请求地址为【DELETE /actuator/chzEndpoint/p1】@DeleteOperationpublic void deleteFeature(@Selector String name) {log.info("chz >> ChzEndpoint.deleteFeature(@Selector String name)");features.remove(name);}@Getter@Setterpublic class Feature{private Boolean enabled;private String name;private Double value;private LocalDateTime time = LocalDateTime.now();}
}

【TestController.java】

package com.chz.myActuator.controller;@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {@Autowiredprivate ConfigurableApplicationContext context;@GetMapping("/shutdown")public String shutdown() {context.close();return "shutdown";}
}

【MyActuatorTest.java】

package com.chz.myActuator;@SpringBootApplication
public class MyActuatorTest {public static void main(String[] args) {SpringApplication.run(MyActuatorTest.class, args);}
}

【test.http】

###GET http://localhost:8080/actuator/chzEndpoint###GET http://localhost:8080/actuator/chzEndpoint/p1###POST http://localhost:8080/actuator/chzEndpoint/p1
Content-Type: application/json{"value": 111.0
}###DELETE http://localhost:8080/actuator/chzEndpoint/p1
Content-Type: application/json

# 运行与测试

启动【MyActuatorTest】

访问【http://localhost:8080/actuator/chzEndpoint】
在这里插入图片描述
访问【http://localhost:8080/actuator/chzEndpoint/p1】
在这里插入图片描述
访问【POST http://localhost:8080/actuator/chzEndpoint/p1】
在这里插入图片描述
在这里插入图片描述
访问【DELETE http://localhost:8080/actuator/chzEndpoint/p1】
在这里插入图片描述
在这里插入图片描述

相关文章:

java:spring actuator添加自定义endpoint

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89437274 # 项目代码 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId&…...

LeetCode88-删除有序数组中的重复项

题目 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 代…...

SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理

防篡改&#xff1a; 如何保证接口安全&#xff0c;做到防篡改防重放&#xff1f;_接口防止串改-CSDN博客 接口安全设计之防篡改和防重放_接口防篡改机制-CSDN博客 参考博客&#xff1a; RequestBodyAdvice和ResponseBodyAdvice原理详解-CSDN博客 SpringBoot Starter 通用接口…...

delphi 如何使用TEdgeBrowser组件以及打包环境在其他主机上运行

不管开发环境还是第三方环境先安装运行时库&#xff1a;Microsoft Edge WebView2 | Microsoft Edge Developer 开发环境可以直接通过&#xff1a; delphi IDE安装 安装完毕后进入到指定路径&#xff0c;复制里面的WebView2Loader.dll到你要开发的程序根目录&#xff1a; 大致路…...

Sui的Fastcrypto加密库刷新速度记录

Sui使用的加密库Fastcrypto打破了许多速度记录&#xff0c;Mysten Labs在基准测试和安全分析中的工作修复了许多安全漏洞&#xff0c;同时通过识别新的优化技巧为创新开辟了道路。 最近在伦敦帝国理工学院举行的国际性能工程会议&#xff08;ICPE&#xff09;基准测试研讨会上…...

Malformed \uxxxx encoding或Maven server structure problem问题解决

问题描述&#xff1a; idea运行项目时, 报错如下: [ERROR] Malformed \uxxxx encoding. [ERROR] Maven server structure problem [ERROR] Malformed \uxxxx encoding. 解决方法总结 先说一下解决方法无非是下面几种 1、先检查项目的.properties、.yml 、pom.xml、logback等…...

Sui主网升级至V1.27.2版本

其他升级要点如下所示&#xff1a; 重点&#xff1a; #17245 增加了一个新的协议版本&#xff0c;并在开发网络上启用了Move枚举。 JSON-RPC #17245: 在返回的JSON-RPC结果中增加了对Move枚举值的支持。 GraphQL #17245: 增加了对Move枚举值和类型的支持。 CLI #179…...

Cheat Engine 学习

文章目录 Exact Value scanning任务实现步骤Unknown initial value任务实现步骤原理说明Floating points任务实现步骤原理说明Code finder任务实现步骤原理说明Pointers任务实现步骤原理说明Change Pointer 操作:Active(活跃状态)和数值修改:Code Injection任务概述实现步骤…...

【千帆AppBuilder】你有一封邮件待查收|未来的我,你好吗?欢迎体验AI应用《未来信使》

我在百度智能云千帆AppBuilder开发了一款AI原生应用&#xff0c;快来使用吧&#xff01;「未来信使」&#xff1a;https://appbuilder.baidu.com/s/Q1VPg 目录 背景人工智能未来的信 未来信使功能介绍Prompt组件 千帆社区主要功能AppBuilderModelBuilder详细信息 推荐文章 未来…...

【案例分析】一文讲清楚SaaS产品运营的六大杠杆是什么?具体怎么运用?

在SaaS&#xff08;软件即服务&#xff09;行业&#xff0c;如何快速获取用户并实现持续增长一直是企业关注的重点。近年来&#xff0c;分销裂变策略因其高效性和低成本特性&#xff0c;成为许多SaaS企业实现快速增长的秘诀。下面&#xff0c;我们将通过一个具体的案例来剖析成…...

系统架构——Spring Framework

目录 &#xff08;1&#xff09;基本介绍 &#xff08;2&#xff09;基本发展历史 &#xff08;3&#xff09;了解和学习 Spring 4.x 系列的系统架构 1、第一个模块&#xff1a;做核心容器&#xff08;Core Contaner&#xff09; 2、第二个模块&#xff1a;AOP与Aspects(这…...

Zig标准库:最全数据结构深度解析(1)

最近新闻看到17岁中专女生拿下阿里全球数学竞赛第12名。咱们学习标准库中的数据结构是和学习数学是一脉相承的&#xff0c;结构体很多&#xff0c;也非常枯燥&#xff0c;但是不能全面解读过一遍&#xff0c;你很难写出合理的代码。所以&#xff0c;这一章节我们开始深度解析Zi…...

什么是 Linux From Scratch (LFS)?

Linux From Scratch (LFS) 是一个项目和一本书&#xff0c;指导用户从头开始构建自己的自定义Linux系统&#xff0c;而不是使用现成的Linux发行版。LFS项目由 Gerard Beekmans 在1999年创建&#xff0c;旨在帮助用户了解Linux的内部工作原理&#xff0c;并提供对系统的完全控制…...

常见的宽基指数基金

指数基金投资指南 ❝ 这篇博客里面的内容主要来自于银行螺丝钉的《定投十年&#xff0c;财务自由》和《指数基金投资指南》这两本书中章“常见的宽基指数”&#xff0c;最近第三次读这本书&#xff0c;打算做一点笔记加深自己的印象。 博客中很多内容是从书中摘抄的&#xff0c…...

Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识

上篇文章说了&#xff0c;今天去公司重新装一下IDE&#xff0c;最后也是把过程这边再记录一下&#xff0c;有需要的可以参考一下。 关于pychram pychram是什么&#xff1f; PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境&#xff08;IDE&#xff09;。它专为…...

dockerfile文件的中的命令

# 基础镜像 FROM registry.cn-beijing.aliyuncs.com/205erp/myopenjdk:8.6 # 设置工作目录 WORKDIR /opt # 拷贝jar包到工作目录 COPY target/*.jar app.jar RUN ls # 设置暴漏的端口 EXPOSE 8080 # 启动jar包 CMD java ${JAVA_TOOL_OPTIONS} -jar app.jar...

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十一章)模拟波形实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PG2L50H_MBG324开发平台&#xff08;盘古PGX-Nano&#xff09; 一&#xff1a;…...

LUA移植到STM32F4,移植REPL,通过RTT Viewer交互

概述 站内移植LUA多数是使用C函数调用LUA&#xff0c;并没有移植REPL交互端口 本文将REPL也移植进去&#xff0c;做了简单的适配 LUA源码使用标准C库函数&#xff0c;如fgets&#xff0c;fwrite等&#xff0c;在嵌入式环境中要使用fgets&#xff0c;fwrite等C库函数&#xff…...

【GD32F303红枫派使用手册】第十九节

19.1 实验内容 通过本实验主要学习以下内容&#xff1a; SPI简介 GD32F303 SPI简介 SPI NOR FLASH——GD25Q32ESIGR简介 使用GD32F303 SPI接口实现对GD25Q32ESIGR的读写操作 19.2 实验原理 19.2.1 SPI简介 SPI&#xff08;Serial Peripheral interface&#xff09;&…...

【C语言】扫雷游戏

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…...

逻辑蕴含、函数依赖集的闭包、Armstrong公理、属性集闭包

一、引言 Armstrong公理-从给定的函数依赖集得到关系模式的完整依赖集 二、逻辑蕴含 1、定义 设F是关系模式R上的函数依赖集&#xff0c;X、Y是R的属性子集&#xff0c;对于R的每个满足F的关系实例r&#xff0c;若函数 依赖都成立&#xff0c;则称F逻辑蕴含。 记为&#…...

macOS聚集搜索功能开启与关闭

按下command空格弹出 使用搜索 关闭搜索 sudo mdutil -a -i off 启用搜索 sudo mdutil -a -i on...

大模型“诸神之战”,落地才是赛点

ChatGPT 诞生已经快一年&#xff0c;你还在与它对话吗&#xff1f; 有的人用来写报告、改代码&#xff0c;让它成为得力帮手&#xff1b;有的人却只是“调戏”个两三回&#xff0c;让它创作诗歌或故事&#xff0c;便不再“宠幸”。 根据网站分析工具 SimilarWeb 的数据&#…...

接口重放攻击

如何保证接口安全&#xff0c;做到防篡改防重放&#xff1f;_接口防止串改-CSDN博客 接口安全设计之防篡改和防重放_接口防篡改机制-CSDN博客 基于nonce timestamp 的方案 nonce的意思是仅一次有效的随机字符串&#xff0c;要求每次请求时该参数要保证不同。实际使用用户信息…...

MySQL学习笔记-进阶篇-SQL优化

SQL优化 插入数据 insert优化 1&#xff09;批量插入 insert into tb_user values(1,Tom),(2,Cat),(3,Jerry); 2&#xff09;手动提交事务 mysql 默认是自动提交事务&#xff0c;这样会导致频繁的开启和提交事务&#xff0c;影响性能 start transaction insert into tb_us…...

【机器学习】第2章 线性回归及最大熵模型

一、概念 1.回归就是用一条曲线对数据点进行拟合&#xff0c;该曲线称为最佳拟合曲线&#xff0c;这个拟合过程称为回归。 2.一个自变量 叫 一元线性回归&#xff0c;大于一个自变量 叫 多元线性回归。 &#xff08;1&#xff09;多元回归&#xff1a;两个x&#xff0c;一个…...

科技创新对农业发展的影响

科技创新对农业发展的影响深远且广泛&#xff0c;主要体现在以下几个方面&#xff1a; 一、提高农业生产效率 引入先进的农业机械设备&#xff1a;新型农业机械设备如无人机、机器人等的应用&#xff0c;显著减轻了农民的劳动强度&#xff0c;提高了农作物的种植效率。利用精…...

Linux 常用命令 - rm 【删除文件或目录】

简介 rm 命令源于英文单词 “remove”&#xff0c;它用于删除文件或目录。rm 是 Linux 系统中最基本的命令之一&#xff0c;用于删除指定的文件或目录。默认情况下&#xff0c;rm 不会删除目录&#xff0c;但可以通过递归删除选项来实现。 使用方式 rm [选项]... [文件]...常…...

一血c++

题目描述 每一个竞赛选手都无法拒绝拿一血 "一血"其实就是同学们在榜单上看到的深绿色的标记&#xff0c;代表着某道题目&#xff0c;他是第一个通过的。 叶苡朋老师是一名资深信奥选手&#xff0c;在大学多次获奖&#xff0c;也是一个资深抢一血爱好者&#xff0…...

无问芯穹Qllm-Eval:制作多模型、多参数、多维度的量化方案

前言 近年来&#xff0c;大语言模型&#xff08;Large Models, LLMs&#xff09;受到学术界和工业界的广泛关注&#xff0c;得益于其在各种语言生成任务上的出色表现&#xff0c;大语言模型推动了各种人工智能应用&#xff08;例如ChatGPT、Copilot等&#xff09;的发展。然而…...

上海网站建设与设计公司/淘宝关键词指数查询

转自&#xff1a;指尖流淌 http://www.cnblogs.com/zhijianliutang/p/4100103.html SQL Server数据库启动过程&#xff08;用户数据库加载过程的疑难杂症&#xff09; 前言 本篇主要是上一篇文章的补充篇&#xff0c;上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和…...

互联网营销外包公司/南宁seo网络优化公司

Java Persistence with MyBatis 3(中文版)转载于:https://www.cnblogs.com/hfultrastrong/p/7744608.html...

计算机网站建设论文/外贸找客户有什么网站

前言前面我们简单介绍了composer的安装 以及 如何安装库本文目的主要实战讲解如何使用库&#xff0c;主要是PSR-0 和 PSR-4的区别&#xff0c;以及如何在代码中引用。关于PSR-0和PSR-4的具体区别可以参考博文 PSR : php编码规范演示代码演示代码都在 https://github.com/apanly…...

移动端网站制作的有哪些要求/最专业的seo公司

自己弄得&#xff0c;比较乱&#xff0c;不具有参考意义 LAC是附属在网络上的具有PPP端系统和L2TP协议处理能力的设备。LAC一般就是一个网络接入服务器&#xff0c;用于为用户提供网络接入服务。 LNS是PPP端系统上用于处理L2TP协议服务器端部分的软件。 补码的加法和减法是相…...

wordpress怎么修改域名/设计一个简单的网页

1、效果 效果图如下&#xff0c;系统首页新闻部分&#xff0c;要求只显示摘要部分的前三行数据&#xff0c;多余的数据省略。 2、HTML代码 红框内为从数据库查询出来的新闻摘要信息 3、CSS代码 主要代码如下&#xff1a; .core-text{color: #999;font-size: 14px;line-h…...

山西网站制作方案/网站模板套用教程

参考网址&#xff1a;http://www.jb51.net/article/29949.htm 这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构&#xff0c;是PHP中专门为遍历数组而设计的语句&#xff0c;推荐大家使用。先分别介绍这几种方法PHP中遍历数组有三种常用的方法…...