Java 如何迁移将AbstractMvcEndpoint扩展到SpringBoot2.x的执行器?
在SpringBoot1.5.x中,我通过扩展Java 如何迁移将AbstractMvcEndpoint扩展到SpringBoot2.x的执行器?,java,spring,spring-boot,spring-boot-actuator,Java,Spring,Spring Boot,Spring Boot Actuator,在SpringBoot1.5.x中,我通过扩展AbstractMvcEndpoint创建了一个执行器端点。但是这个类在SpringBoot2.x中已经不存在了 如何升级以下类 @Configuration @ManagementContextConfiguration public class MyManagementController extends AbstractMvcEndpoint { private static final Logger logger = LoggerFa
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";
}
}
您可以将annotation
@RestControllerEndpoint
与spring boot 2.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;
}
}
@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);
}
}
请参阅:您可以在spring boot 2.x中使用annotation
@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;
}
}
@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);
}
}
请参阅:
@Endpoint
是我们所有人迁移的方式。非常简单。我相信端点是首选的方式。我们在大多数情况下使用端点,但在少数情况下使用RestControllerEndpoint,因为它似乎提供了更多的灵活性。@Endpoint
是我们迁移所有端点的方式。非常简单。我相信端点是首选的方式。我们在大多数情况下使用端点,但在少数情况下使用RestControllerEndpoint,因为它似乎提供了更多的灵活性。