当前位置: 首页 > 知识库问答 >
问题:

Spring引导执行器endpoint.enabled=假endpoint.health.enabled=真

冯泓
2023-03-14

我正在工作启用Spring引导健康检查使用执行器。由于我们的应用程序依赖于Spring1.5.21,所以我不得不使用致动器1.5.21版本。我在他们的在线文档上读了一些配置,显示您可以应用以下内容来只允许“/health”endpoint公开。

By default, all endpoints except for shutdown are enabled. If you prefer to specifically “opt-in” endpoint enablement you can use the endpoints.enabled property. For example, the following will disable all endpoints except for info:

endpoints.enabled=false
endpoints.info.enabled=true

由于我需要禁用除“/health”endpoint之外的所有endpoint,所以我在application.properties文件中配置了它,如下所示。但是,这对我不起作用。

endpoints.enabled=false
endpoints.health.enabled=true

结果如下:

http://localhost:8080/health

{"message":"This endpoint is disabled"}

环境:

Spring boot: 1.5.21 release
JDK: 1.8
Application: web application

对此有什么想法吗?提前道谢!

endpoints.enabled=false
endpoints.health.enabled=true
2020-03-29 19:29:15.541  INFO 9796 --- [  restartedMain] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)

然而,当我将它与SDL Tridion 8.5一起使用时,它就停止工作了。有什么想法吗?

        <dependency>
            <groupId>com.sdl.dxa</groupId>
            <artifactId>dxa-common-api</artifactId>
            <version>${dxaversion}</version>
        </dependency>
        <dependency>
            <groupId>com.sdl.dxa</groupId>
            <artifactId>dxa-common</artifactId>
            <version>${dxaversion}</version>
        </dependency>
        <dependency>
            <groupId>com.sdl.dxa</groupId>
            <artifactId>dxa-tridion-provider</artifactId>
            <version>${dxaversion}</version>
        </dependency>
        <dependency>
            <groupId>com.sdl.dxa.modules</groupId>
            <artifactId>dxa-module-core</artifactId>
            <version>${dxaversion}</version>
        </dependency>
endpoints.enabled=false
endpoints.health.enabled=true

结果:

http://localhost:8080/health

{"message":"This endpoint is disabled"}

共有1个答案

王棋
2023-03-14

不需要使用disable。仅使用以下属性:

management.endpoints.web.exposure.include='health'
 类似资料:
  • 从这份官方文件中,很难确定这两个模块之间有什么区别。 谁能提供一个官方和规范的答案来解释两者的区别吗?

  • {“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?

  • 我们正在尝试healthcheck一个Spring Boot应用程序,我们正在计划使用Spring Boot执行器health来获得健康状态。 令人困惑的是,当CassandraHealthIndicator、DiskSpaceHealthIndicator、DataSourceHealthIndicator、ElasticsearchHealthIndicator、JmsHealthIndica

  • 我有一个使用spring Boot1.4.2和CXF JAXR的项目设置。我想把Spring引导执行器添加到项目中。这是我添加到项目中的配置。 在此之后创建一个WAR文件,然后将其部署在外部tomcat服务器中。但是当我访问健康URL localhost:8080/management/health时,它给出的是404 HTTP代码。服务器正常启动,我可以看到包含以下详细信息的日志: 运行状况配置

  • Spring Boot执行器的两个版本(1.2.5和1.3.0)在HealthMvcEndpoint,isUnrestricted()方法(&&and)中的实现存在差异。我明白这是为了保留这些限制 http://docs.spring.io/spring-boot/docs/current-snapshot/reference/htmlsingle/#production-ready-health