gpt4 book ai didi

java - 如何在 Spring 中运行 @PostConstruct 非阻塞?

转载 作者:行者123 更新时间:2023-12-04 16:38:08 25 4
gpt4 key购买 nike

@PostConstruct
public void performStateChecks() {
throw new RuntimeException("test");
}
如果我开始一个 spring上面代码的应用程序,它将阻止应用程序启动。
我正在寻找的是在启动后直接执行一个方法,但异步。意思是,它不应该延迟启动,也不应该阻止应用程序即使在失败时也能运行。
如何使初始化异步?

最佳答案

我能看到的最简单的方法是使用 EventListeners 和异步任务执行器。
添加此代码片段将完成以下工作:

    @Component
public class AsyncStartupRunner {

@Bean(name = "applicationEventMulticaster")
public ApplicationEventMulticaster simpleApplicationEventMulticaster() {
SimpleApplicationEventMulticaster eventMulticaster =
new SimpleApplicationEventMulticaster();

eventMulticaster.setTaskExecutor(new SimpleAsyncTaskExecutor());
return eventMulticaster;
}

@EventListener(ApplicationReadyEvent.class)
public void executeAfterStartup() {
throw new RuntimeException("Oops");
}
}

关于java - 如何在 Spring 中运行 @PostConstruct 非阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66670891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com