SpringBoot"/>
5.SpringBoot
普通方式实现
以前有EndPoint接口 新版本已经废弃
注解方式实现
注解说明
@Endpoint
@WebEndpoint
@ControllerEndpoint
@RestControllerEndpoint
@ServletEndpoint
简单使用
如果在使用类上增加@Endpoint注解,再给方法添加@ReadOperation,@ WritOperation或@DeleteOperation注释后,该方法将通过JMX自动公开,并且在Web应用程序中也通过HTTP公开。
只有在你的项目使用了Jersey,Spring MVC或Spring WebFlux组件时才会使用HTTP协议来公开端点。
用于方法的注解有以下三种,分别对应get post delete 请求
Operation | HTTP method |
---|---|
@ReadOperation | GET |
@WriteOperation | POST |
@DeleteOperation | DELETE |
简单示例helloworld
@Endpoint(id = "hello")
@Component
public class SimpleEndpoint {@ReadOperationpublic String getHello(){return "get Hello";}@WriteOperationpublic String postHello(){return "post Hello";}@DeleteOperationpublic String deleteHello(){return "delete Hello";}
}
扩展Endpoint
传递参数
仅仅支持简单对象,不支持复杂对象,
增加路径参数
使用@Seleter可以增加路径参数
@ReadOperationpublic String getHelloWithName(@Selector String name){return "get Hello";}
使用后会生成以下路径
"hello-name": {"href": "http://127.0.0.1:8080/actuator/hello/{name}","templated": true}
当然也可能生成一下路径
"hello-args0": {"href": "http://127.0.0.1:8080/actuator/hello/{args0}","templated": true}
使用下面的方法即可解决
注意一个坑,在java 1.8以下几某些1.8低版本中编译出来的class是无法取到参数名的,会导致该接口使用失败,需要在编译时添加-parameters参数然后进行编译
参考资料
参考:附录:intellij idea java8反射获取方法参数名
增加安全校验
更多推荐
5.SpringBoot
发布评论