代码之家  ›  专栏  ›  技术社区  ›  Don Rhummy

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

  •  0
  • Don Rhummy  · 技术社区  · 7 年前

    AbstractMvcEndpoint . 但是这个类在SpringBoot2.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 回复  |  直到 7 年前
        1
  •  2
  •   Nitin1706    7 年前

    可以使用注释 @RestControllerEndpoint 使用SpringBoot2.x,您可以在这里拥有自己的请求映射和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-actuator-custom-endpoint/