Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧靴';s健康执行器-何时启动?_Java_Spring_Actuator - Fatal编程技术网

Java 弹簧靴';s健康执行器-何时启动?

Java 弹簧靴';s健康执行器-何时启动?,java,spring,actuator,Java,Spring,Actuator,我找不到有关弹簧健康执行器何时返回启动状态的任何文档。您能依赖于初始化所有的@组件吗?@Controller是否准备好为请求提供服务?为了测试应用程序上下文是否已加载,您可以执行此自定义实现 @EventListener-初始化上下文时,将触发用EventListener注释的方法 在下面的代码中,我在成功初始化时增加了计数器。当您点击执行器运行状况端点时,您将获得状态为UP 上下文初始化健康检查的示例实现:- @Component public class ApplicationContext

我找不到有关弹簧健康执行器何时返回启动状态的任何文档。您能依赖于初始化所有的
@组件吗?
@Controller
是否准备好为请求提供服务?

为了测试应用程序上下文是否已加载,您可以执行此自定义实现

@EventListener
-初始化上下文时,将触发用EventListener注释的方法

在下面的代码中,我在成功初始化时增加了计数器。当您点击执行器运行状况端点时,您将获得状态为UP

上下文初始化健康检查的示例实现:-

@Component
public class ApplicationContextHealthIndicator implements HealthIndicator {

    private final Logger LOG = Logger.getLogger(getClass().getName());

    public static int counter;

    @EventListener
    public void onApplicationEvent(ContextRefreshedEvent event) {
        LOG.info("Increment counter :" + counter);
        counter++;
    }

    @Override
    public Health health() {
        if (counter == 0) {
            return Health.down().withDetail("Error Code", 500).build();
        }
        return Health.up().build();
    }
}
端点春季启动版本5:-

@Component
public class ApplicationContextHealthIndicator implements HealthIndicator {

    private final Logger LOG = Logger.getLogger(getClass().getName());

    public static int counter;

    @EventListener
    public void onApplicationEvent(ContextRefreshedEvent event) {
        LOG.info("Increment counter :" + counter);
        counter++;
    }

    @Override
    public Health health() {
        if (counter == 0) {
            return Health.down().withDetail("Error Code", 500).build();
        }
        return Health.up().build();
    }
}

SpringActuator可以检查数据库、web服务端点、电子邮件服务器等。它可以提供作为应用程序一部分的所有这些资源的状态


自动配置的运行状况指示器检查数据库、jmx等。因此,您无法知道应用程序上下文何时已完全初始化?它主要用于端点和数据库。如果要检查应用程序上下文初始化,可以编写侦听器来检查。好的,谢谢!不过,在顶层有一个“状态”属性。这必须是广泛的应用-我想知道它告诉我们什么?{“status”:“UP”,…谢谢!请允许询问顶级“status:UP”是什么是用于?这是所有资源的聚合状态吗?我找不到任何关于此的文档。我将实际测试是否是这种情况。是的,这是聚合结果。谢谢-非常有用!仍然不确定Spring执行器如何在Spring应用程序上下文运行之前报告事情。应用程序上下文不应与可能是一个资源本身。我本来打算给我的RestController添加一个运行状况指示器,但因为它只是一个Spring bean,所以它只能在Spring应用程序运行时启动。到底应该为Spring bean添加一个运行状况检查吗?是的,我考虑过。在这种情况下,执行器应该单独运行。您可以使用propert配置服务器的ies.management.server.port:8080 management.server.address:localhost