根据官方文档和示例,建议Actuator自定义端点应该在控制器级别进行注释。
例如,我们可以创建一个自定义端点来获取系统当前时间,可以使用以下示例代码:
在pom.xml中添加spring-boot-starter-actuator依赖:
org.springframework.boot
spring-boot-starter-actuator
创建一个自定义端点控制器:
@RestController
@Endpoint(id = "time")
public class TimeEndpoint {
@GetMapping("/time")
public Map getTime() {
Map map = new HashMap<>();
map.put("time", LocalDateTime.now().toString());
return map;
}
}
其中,@Endpoint注解用于标识这是一个Actuator自定义端点,id属性指定了端点的ID。在控制器中使用@GetMapping注解定义了一个用于获取当前时间的映射。最后返回一个包含当前时间的Map。
在应用程序中启用该端点。在application.properties中添加以下行:
management.endpoints.web.exposure.include=time
现在,您可以访问http://localhost:8080/actuator/time以获取当前时间。
总之,建议将Actuator自定义端点注释在控制器级别。这使得端点与应用程序的其他部分分离,并且容易看到所有可用的端点。