50.8 Implementing Custom Endpoints
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。这样,如果你的用户要求一个独立的管理端口或地址,端点将跟其它网络端点一样移动到一个子上下文中。