Spring 控制台应用程序中的引导执行器

Spring boot actuator in console application

我有一个使用 Spring 的控制台应用程序。我的应用程序正在连接数据库和 JMS 服务器。 我想在我的应用程序启动时知道它是否与数据库和 JMS 连接良好。 我知道 spring-boot-actuator 可以高效且轻松地执行此操作,但它会暴露其余端点。我想知道是否可以获取 Spring 执行器的 bean 以获取状态信息、数据库和 JMS 状态。

可以吗?

谢谢。

根据 the documentation,可以通过 HTTP 或 JMX 公开端点。默认情况下,Spring 将通过 JMX 公开执行器端点,除非您将其配置为不这样做。

默认在 JMX 和 HTTP 中启用 a table showing which endpoints。如果你想在 HTTP 上启用它们,在公开它们之前你应该了解几个安全设置(参见上面的文档 link)。

为了通过 HTTP 公开执行器端点,您需要在构建中包含 spring-starter-web 开始。

Gradle:

compile('org.springframework.boot:spring-boot-starter-web')

专家:

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

同样,在执行此操作之前检查安全设置。较新版本的启动应该为您提供一组安全的默认设置。

关于你的第二个问题:是的,弹簧执行器在类路径中找到时会提供自动配置的健康指标,请参阅this list了解更多详细信息(提供数据源和 JMS)。

但您也可以轻松实现自己的状态信息,只需实现 HealthIndicator 并将其添加为 @Component,可以找到更多详细信息 here.

您可以使用 REST 或 JMX 公开它们,可以通过 application.properties 配置公开,详细信息可以在 the docs.

中找到