当前位置: 首页 > 知识库问答 >
问题:

Spring Boot添加我自己的endpoint作为endpoint管理

司徒河
2023-03-14

我对spring框架和所有的Spring-*我开始深入研究spring boot,并将其作为围绕REST服务的新产品构建的候选版本进行评估。

目前,我对通过“执行器”模块公开的内容感兴趣,我知道我可以立即收集信息(/info)监视钩子(/health)甚至关闭endpoint,通过提供一个配置选项将这些endpoint放在特定的端口和“命名空间”下,所有这些都与主服务器解耦

management.port=9000
management.contextPath=/admin

我正在寻找一个提示,将我自己的endpoint添加到那些已经定义的endpoint(注意,我不想像HealthIndicator中建议的那样丰富现有的endpoint,但我真的想添加一个新的endpoint,比如'/admin/get_me_out_of_load_balancers')

我可以看到,所有现有的endpoint都扩展了AbstractEndpoint,但没有设法使我的endpoint在management ContextPath下可用...

共有1个答案

颛孙博易
2023-03-14

endpoint类的实例公开为bean;Spring靴的执行机构自动配置将自动发现它。例如:

package demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public static Endpoint exampleEndpoint() {
        return new Endpoint<String>() {
            @Override
            public String getId() {
                return "example";
            }

            @Override
            public boolean isEnabled() {
                return true;
            }

            @Override
            public boolean isSensitive() {
                return false;
            }

            @Override
            public String invoke() {
                return "example";
            }
        };
    }
}
 类似资料:
  • 从spring-boot v1.3迁移到最新的spring-boot v2.2.4后,我们失去了在管理端口下拥有自定义endpoint的能力。 在我们将自定义endpoint声明为: 由于已从Spring引导执行器中删除了MvcEndpoint,现在我们需要执行以下操作: 不幸的是,我们失去了一个为自定义管理endpoint提供自定义根路径的选项(在它出现之前) 对于背部兼容性,我们仍然希望有默认

  • 我想在WordPress Rest API中添加自定义endpoint。我能够通过创建简单的插件来获取此代码的帖子ID,标题,内容,slug,类别和featured_image。我在代码中获得了类别ID。我想要类别名称,我试图通过来执行此操作,但没有理解它。如何通过自定义终结点获取类别名称,作者姓名和作者个人资料图像。我也是wordpress的初学者。我参考了文档,但不明白该怎么做。将其写w_po

  • 我试图创建动态endpoint,作为我的连接和运行问题的覆盖。我试图模拟这个人在SO上有什么: jsPlumb连接自定义覆盖-endpoint未移动 然而,当我达到这一点时,无论我尝试做什么: 我无法识别连接。我尝试将此逻辑放入绑定连接中,但在尝试建立连接覆盖时,这也不起作用。在这方面提供任何帮助都会非常有帮助。

  • 有没有一种简单的方法可以为所有执行器endpoint添加前缀?

  • 终端设备类型定义 Fieldsid (ID!) 终端IDvendorId (ID) 技能IDdeviceInfo (JSON) 终端设备详细信息name (String) 终端设备名userId (ID!) 用户IDroomId (ID) 房间IDskillId (ID) 技能IDhomeId (ID!) 家庭IDalias (String) 设备别名state (JSON) 设备状态action

  • 我正在使用wiremck json存根,并且一直在http://wiremock.org/docs/stubbing/阅读文档,但我似乎无法找到可以放在json存根文件响应部分的所有选项的完整列表。 我可以看到如何给出响应,甚至如何循环遍历场景等。但是当我到达特定终端时,似乎找不到其他方法。有没有办法指定当特定终端被击中时要运行的自己的脚本?最好使用endpoint作为提供给脚本的参数? 在我的情