将我的Spring Boot应用程序更新到最新的构建快照时,我发现默认情况下没有启用任何执行器端点。如果我在application.properties
中指定要启用它们,则会显示它们。
1)这种行为是否打算?我试图寻找一个问题来解释它,但找不到一个。有人可以将我链接到问题/文档吗?
2)有没有办法启用所有执行器端点?我经常发现自己在开发过程中使用它们,而不想在我的属性文件中维护它们的列表。
答案 0 :(得分:2)
这个答案的两个部分:
"有没有办法启用所有执行器端点?"
添加此属性protected $casts = [
'skills' => 'json'
];
public function skills()
{
return $this->skills;
}
,而不是使用endpoints.enabled=true
,endpoints.info.enabled=true
等单独启用它们
更新:相关属性为:
endpoints.beans.enabled=true
"这种行为是否打算?"
可能不是。听起来你可能已经发现了最新的里程碑问题。如果Spring Boot里程碑存在可重现的问题,那么Spring's advice就是......
报告问题
Spring Boot使用GitHub的集成问题跟踪系统来记录错误和功能请求。如果您想提出问题,请遵循以下建议:
在您记录错误之前,请search the issue tracker查看某人是否已报告此问题。
如果问题尚不存在,请create a new issue。
答案 1 :(得分:0)
是否有启用所有执行器端点的方法?
使用Spring Boot 2.2.2发行版,这对我有用:
在文件src / main / resources / application.properties上添加以下内容:
management.endpoints.web.exposure.include=*
要检查已启用的端点,请转到http://localhost:8080/actuator
答案 2 :(得分:0)
即使我们启用以下所有执行器端点
management.endpoints.web.exposure.include=*
(对于YAML,星号应在双引号中加上“ *”,因为星号是YAML语法中的特殊字符之一)
默认情况下,httptrace
执行器端点仍不会在Web中启用。需要实现HttpTraceRepository接口以启用httptrace(请参见Actuator default endpoints,Actuator endpoints,Actuator httptrace)。
@Component
public class CustomHttpTraceRepository implements HttpTraceRepository {
AtomicReference<HttpTrace> lastTrace = new AtomicReference<>();
@Override
public List<HttpTrace> findAll() {
return Collections.singletonList(lastTrace.get());
}
@Override
public void add(HttpTrace trace) {
if ("GET".equals(trace.getRequest().getMethod())) {
lastTrace.set(trace);
}
}
}
现在可以使用url访问端点了,
http://localhost:port/actuator/respective-actuator-endpoint
(例如http:// localhost:8081 / actuator / httptrace)
如果属性文件中存在management.servlet.context-path
值,则该URL为
http://localhost:port/<servlet-context-path>/respective-actuator-endpoint
(示例http:// localhost:8081 / management-servlet-context-path-value / httptrace)