我正在使用Spring Actuator(版本2.2.4.RELEASE)在/localhost:8080/my-app/actuator/health
处生成运行状况检查端点,该端点正常工作。
这将生成3个端点,这些端点在访问/actuator
时显示并在Swagger中显示(版本2):
/actuator/health
/actuator/health/{*path}
(在我的张扬页面中,这显示为/actuator/health/**
)]/actuator/info
由于AWS的原因,health/**
出现问题,想删除它(并且我也想删除/info
,因为我不需要它)。
我尝试将以下内容添加到我的application.properties
文件中:
management.endpoints.web.exposure.exclude=health,info
和
management.endpoints.jmx.exposure.exclude=health,info
但是没有任何区别(它们仍然会生成)。我尝试使用*
来查看是否会强制所有端点消失,但也不会改变任何东西。
知道如何解决此问题?
我发现一个属性文件被另一个文件覆盖。因此,使用以下命令:
management.endpoints.enabled-by-default=false
management.endpoint.health.enabled=true
摆脱/actuator/info
端点。但是,我仍然需要摆脱/actuator/health/{*path}
并保留/actuator/health
端点。
公开摇摇欲坠的UI的推荐方法是仅启用特定路径。这是一个仅可用于公开/rest/*
端点的示例。您可以将其替换为所需的任何模式。
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Give a meaningful Title")
.description("Describe your API")
.termsOfServiceUrl("Put your T&C URL")
.contact("Contact details")
.license("Licence Description")
.licenseUrl("Licence Endpoint")
.version("API Version")
.build();
}
private Predicate<String> paths() {
return or(regex("/rest/.*"));
}
@Bean
public Docket newsApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("rest")
.apiInfo(apiInfo())
.select()
.paths(paths())
.build();
}
此示例仅允许您要公开的端点。
示例实现请参见https://github.com/reflexdemon/shop/blob/master/src/main/java/org/shop/Application.java#L85-L107。
演示查看端点的示例:https://shop.vpv.io/swagger-ui.html通过使用登录用户名stack
密码overflow
查看摇摇欲坠。