50.8 实现自定义端点

如果你添加一个用@Endpoint标注的@Bean,任何用@ReadOperation@WriteOperation或者@DeleteOperation标注的方法都会自动通过JMX暴露,在网络应用里则会通过HTTP暴露。使用Jersey、Spring MVC或者Spring WebFlux时,端点会通过HTTP暴露。

你也可以使用@JmxEndpoint或者@WebEndpoint,编写技术特定的端点。这些端点受到对应技术的限制。比如,@WebEndpoint只能通过HTTP暴露,不能通过JMX暴露。

你可以使用@EndpointWebExtension或者@EndpointJmxExtension编写技术特定的扩展。这些注解让你提供技术特定的操作,来声明一个既存的端点。

最后,如果你需要访问网络框架特定的功能,你可以实现Servlet或者Spring @Controller@RestController端点。但是,它们将不能通过JMX暴露,也不能用于另外的网络框架。

如果你添加端点作为一个库特性,考虑将一个用@ManagementContextConfiguration标注的配置类添加到/META-INF/spring.factories中,且key为org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration。这样,如果你的用户要求一个独立的管理端口或地址,端点将跟其它网络端点一样移动到一个子上下文中。

最后更新于