版本 Spring Boot 2.0.2 问题:自定义端点@ReadOperation
和环境:启用@Parameter
Gradle 构建-parameters
@Endpoint(id = "custom")
public class CustomEndpoint {
@ReadOperation
public CustomResponse getCustom() {
...
}
@ReadOperation
public CustomResponse getCustomByName(@Selector String name) {
...
}
调用http://localhost:62381/actuators
端点返回:
"custom": {
"href": "http://localhost:62381/actuator/custom",
"templated": false
},
"custom-arg0": {
"href": "http://localhost:62381/actuator/custom/{arg0}",
"templated": true
},
但调用http://localhost:62381/actuator/custom/test
返回
There was an unexpected error (type=Bad Request, status=400). Missing parameters: name
这是由于org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker validateRequiredParameters(InvocationContext context)
验证失败引起的
调用http://localhost:62381/actuator/custom?name=test
返回第一个的输出,@ReadOperation
而不是第二个的输出
有一个解决方法http://localhost:62381/actuator/custom/ignored?name=test