Spring Boot 2 执行器端点

在这里,我们将讨论 Spring Boot 2 执行器端点。在本文中,我将介绍以下几点。在任何时候,您都可以参考 Spring Boot 2 Actuator 的 GITHUB 存储库。

阅读更多:Spring Boot 2 执行器端点

  • 配置
  • URL/路径
  • 启用和公开

启用和公开

在使用终结点之前,我们需要了解“公开”和“已启用终结点”之间的区别。

为了访问特定的端点,需要同时启用和公开它。如果禁用终结点,它将从应用程序上下文中完全删除。

shutdown 是唯一默认禁用的端点。虽然启用了终结点,但默认情况下仅公开以下两个终结点

  • 健康
  • 信息

这意味着,如果要访问任何其他端点,则必须根据需要进行配置。

启用端点

尽管默认情况下启用了除其他所有终结点。但是,在某些情况下,您可能需要禁用特定端点或启用端点。以下配置可用于启用/禁用特定端点。

management:
  endpoint:
    shutdown:
      enabled: true # Disabled By Default
    info:
      enabled: true # Enabled by Default
    beans:
      enabled: false

公开终结点

开发人员需要编写显式配置代码来公开其他端点。Include / exclude 参数可用于根据要求配置端点。

management:
 endpoints:
   web:
     exposure:
       include: '*' # Enable all endpoint over HTTP
       exclude: env # Do not expose env endpoint

执行器端点配置

要启用Spring Boot Actuator Endpoint,您唯一需要做的就是添加以下依赖项。

对于 maven 项目

<dependency>
   <artifactId>spring-boot-starter-actuator</artifactId>
   <groupId>org.springframework.boot</groupId>
</dependency>

对于gradle项目

dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' }

默认端点(INFO、HEALTH)将通过添加上述依赖项来公开和启用。

以下是重要端点的列表。

信息 显示有关应用程序的信息。可以自定义在 INFO 端点中添加的详细信息。
健康 显示应用程序运行状况。
环境 显示环境属性列表
日志文件 显示日志文件的内容
显示所有 Spring Bean 的完整列表
伐木 显示和修改记录器级别。
关闭 一种正常关闭应用程序的方法。(默认禁用)。启用它时要小心。

可以轻松定制信息运行状况终结点,以满足我们的需求。我们将在相应的文章中详细解释这些端点中的每一个。

基本路径

Spring Boot 将所有已启用的端点配置为通过 HTTP 公开。默认情况下,基本路径将是/actuator.
特定端点的 ID(例如 info/health)可以与基本路径 (/actuator) 一起使用,以查找最终的 URL 路径。

信息端点: 运行状况端点:
/actuator/info /actuator/info

可以根据需要配置默认基本路径(管理终结点)。虽然这不是必需的,但作为开发人员,您可能有自己的偏好。因此,要更改基本路径,您可以在 YML 文件中添加以下配置。

endpoints:
 web:
   exposure:<em>
 </em>    base-path: /mgmt

添加上述配置后,基本路径将为 /mgmt,不同端点的 URL 如下所示。

信息端点: 运行状况端点:
/mgmt/info /mgmt/info

端点列表

现在,您已经配置了端点基本路径。您知道如何访问各个端点。但是,如果要访问Spring Boot应用程序公开的所有端点,该怎么办?可以通过转到基本路径 URL 来查看应用程序公开的所有终结点。

<em>http://localhost:9092/mgmt/</em>

禁用安全性

如果您的应用程序配置了 Spring 安全性。所有执行器链接都可能受到保护。要禁用端点的安全性,您可以使用以下配置代码。

http.authorizeRequests()
.requestMatchers(EndpointRequest.<em>toAnyEndpoint</em>())
.permitAll();

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!