【发布时间】:2015-09-28 23:15:49
【问题描述】:
我想禁用除健康端点之外的所有执行器端点。所有文档都描述了如何在资源属性中实现这一点:
endpoints.enabled=false
endpoints.health.enabled=true
但我一直更喜欢使用内联 java 配置。有人可以解释一下我可以在应用程序的哪个位置进行配置吗?
【问题讨论】:
标签: java spring spring-mvc spring-boot
我想禁用除健康端点之外的所有执行器端点。所有文档都描述了如何在资源属性中实现这一点:
endpoints.enabled=false
endpoints.health.enabled=true
但我一直更喜欢使用内联 java 配置。有人可以解释一下我可以在应用程序的哪个位置进行配置吗?
【问题讨论】:
标签: java spring spring-mvc spring-boot
查看org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration,在缺少bean 时提供端点。一种选择是在您自己的配置类中提供它们。所有端点都有字段启用。您可以提供所有这些,在 false 上启用设置,您需要的除外。
@Configuration
public class ActuatorConfiguration {
@Autowired(required = false)
private Collection<PublicMetrics> publicMetrics;
@Bean
public MetricsEndpoint metricsEndpoint() {
List<PublicMetrics> publicMetrics = new ArrayList<>();
if (this.publicMetrics != null) {
publicMetrics.addAll(this.publicMetrics);
}
Collections.sort(publicMetrics,AnnotationAwareOrderComparator.INSTANCE);
MetricsEndpoint metricsEndpoint = new MetricsEndpoint(publicMetrics);
metricsEndpoint.setEnabled(false);
return metricsEndpoint;
}
}
【讨论】: