如何在启动应用时执行Quarkus上的部分代码?

How to execute part of the code on Quarkus when starting the application?

请帮我理解启动应用程序时如何执行Quarkus上的部分代码? 如果可能,丢弃 link 或给出示例代码。 谢谢。

不确定是否理解您的问题,但如果您想在启动时执行代码,最简单的方法是观察(使用 @Observes)带有 CDI bean 的 StartupEvent

@ApplicationScoped
public class AppLifecycleBean {

    private static final Logger LOGGER = Logger.getLogger("ListenerBean");

    void onStart(@Observes StartupEvent ev) {               
        LOGGER.info("The application is starting...");
    }

    void onStop(@Observes ShutdownEvent ev) {               
        LOGGER.info("The application is stopping...");
    }

}

如果您需要更好地了解 Quarkus 应用程序生命周期,可以在我们的文档中找到更多详细信息: https://quarkus.io/guides/lifecycle#listening-for-startup-and-shutdown-events

Quarkus 有一个@Startup 注释,它将在启动时实例化一个服务。它只是自动侦听 StartupEvent:

对于每个用 @Startup 注释的 bean,都会生成一个 StartupEvent 的合成观察者。使用默认优先级。

效果不错。

Quarkus @Startup annotation