我正在尝试将查询参数传递给健康状况端点。这可能吗?
例如,http://localhost/health?id=asdfasdf
我想访问health()方法中的id。
@Override
public Health health() {
//access id here.
}
谢谢,
杰里
答案 0 :(得分:1)
Spring Boot端点旨在通过多种不同的技术向客户端公开。例如,开箱即用支持HTTP和JMX。这意味着在端点中使用特定于HTTP的内容并不是一个好主意。
那就是说,如果真的希望提供一个特定于HTTP的HealthIndicator
,那么你应该能够使用Spring的RequestContextHolder
来获取ServletRequestAttributes
当前请求的实例。在那里,您可以访问HttpServletRequest
并致电getQueryString()
:
String queryString = (((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest().getQueryString());