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

如何将扩展AbstractMvcEndpoint的执行器迁移到Spring Boot2.x?

何峰
2023-03-14

在Spring Boot 1.5.x中,我通过扩展abstractmvcendpoint创建了一个执行器endpoint。但这个类在Spring Boot2.x中不再存在。

我如何升级下面的类?

@Configuration
@ManagementContextConfiguration
public class MyManagementController extends AbstractMvcEndpoint
{
    private static final Logger logger = LoggerFactory.getLogger( MyManagementController.class );

    public MyManagementController()
    {
        super( "/mypath, false, true );
    }

    @PostConstruct
    public void completeSetup()
    {
        setEnabled( true );
    }

    @GetMapping(
        value = "/" + PATH_PIECE_MANAGERS,
        produces = MediaType.APPLICATION_JSON_VALUE
    )
    @ResponseBody
    public String test(HttpServletRequest request) throws Exception
    {
        return "ok";
    }
}

共有1个答案

胡云瀚
2023-03-14

您可以在Spring-Boot2.x中使用注释@RestControllerEndpoint,在这里您可以拥有自己的请求映射以及HttpMethods。下面是一个示例:

    @Component
    @RestControllerEndpoint(id = "remote")
    public class CustomActuator {
        @RequestMapping(value = {"/{actuatorInput}"}, produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
        @ResponseBody
        public Map<String, Object> feature(@PathVariable("actuatorInput") String actuatorInput) {
            System.out.println("actuatorInput : " + actuatorInput);
            Map<String, Object> details = new HashMap<>();
            details.put("input", actuatorInput);
            return details;
        }
    }

或者,您可以使用@endpoint(id=“endpoint”),通过它可以使用@readoperation@writeoperation进行GET和POST操作。

下面是一个示例:

@Component
@Endpoint(id = "custom-health")
public class CustomHealthEndpoint {

    @ReadOperation
    public String customEndPointByName(@Selector String name) {
        return "custom-end-point : " + name;
    }
    @WriteOperation
    public void writeOperation(@Selector String name) {
        System.out.println("Write Operation! :: " + name);
    }
    @DeleteOperation
    public void deleteOperation(@Selector String name){
        System.out.println("Delete Operation! :: " + name);
    }
}

参见:https://www.javadevjournal.com/spring-boot/spring-boot-acture-custom-endpoint/

 类似资料:
  • 问题内容: 我有一个Go项目,它使用goose进行Mysql迁移。我想将迁移绑定到程序包可执行文件,以便该可执行文件可以独立于任何系统进行部署和使用,类似于JAVA项目中的JAR文件。 Go可以做到这一点吗? 问题答案: 如何获得一个可以迁移数据库并工作的文件 安装 制作应用。我基于示例并添加选项。假设您的项目位于: 创建用于迁移的文件夹: 创建第一个迁移。我们将使用-style迁移: 您将获得带

  • 这是我在实体的源代码模型中的内容: 这是我在实体的目标模型中得到的: 如您所见,我将关系从多个更改为一个,从更改为。 但现在我有以下错误: 我不知道如何解决这个问题。有什么想法吗? 这是我设置核心数据堆栈的方式:

  • 问题内容: 有人知道如何将整个方法更改为Swift 3吗?目前,我有一些与Swift 2.2上的OK正常工作类似的东西,但现在我正尝试将其更改为Swift 3。 除了“ URLRequestConvertible”,Alamofire.Method(我更改为HTTPMethod,现在可以使用)和参数编码之外,我还出现了一些错误,此外我没有遵守整个协议。 我正在等待Alamofire工程师的指导,但

  • 添加了一些与CLANG相关的新属性: 如何配置项目以使用Xcode12.5部署此应用程序? $React-本机信息获取系统和库信息...System:OS:macOS 11.3 CPU:(4)x64 Intel(R)Core(TM)i3-8100B CPU@3.60 GHz内存:256.45MB/8.00 GB shell:3.2.57-/bin/bash二进制文件:node:10.16.0-/u

  • 我升级为不和谐。JSV12,但它破坏了我现有的v11代码。下面是一些导致错误的示例: 如何将代码迁移到Discord。JSV12并修复这些错误?在哪里可以看到v12引入的突破性更改?

  • 我正在使用OpenJDK 12中的Nashorn JS引擎。纳肖恩似乎遭到了反对。我正在寻找可用的替代方案。我找到了GraalVM,但我不确定这是不是最好的。如何从Java执行GraalVM JavaScript?你有什么例子吗? Nashorn用的是Java: 在Nashorn中,我创建了一个WrappedMongoDatabase,它扩展了AbstractJSObject。在那里,我添加了一些