0

我是新来的刺尾。我已经在 thorntail 中集成了quartz,并且能够将其作为 REST API 使用。但是我可以在上下文中存储调度程序信息,以便调度程序在应用程序启动后运行,而不是点击 URL 来运行它?如果我错了,请纠正我。

4

1 回答 1

0

这个问题没有太多细节,但如果我理解正确,你想在应用程序启动时运行一些代码。至少有以下两种方法:

  1. 使用 CDI,创建一个@ApplicationScoped带有事件观察者的 bean @Initialized(ApplicationScoped.class)

    @ApplicationScoped
    public class Initializer {
        public void init(@Observes @Initialized(ApplicationScoped.class) Object event) {
            ...
        }
    }
    

    这需要io.thorntail:cdi分数。

  2. 使用 EJB,创建一个@Singleton @StartupEJB 并添加一个@PostConstruct方法:

    @Singleton
    @Startup
    public class Initializer {
        @PostConstruct
        public void init() {
            ...
        }
    }
    

    这需要io.thorntail:ejb分数。

我假设您已经使用 CDI,因此第一个变体可能更可取。

于 2020-06-17T11:01:10.333 回答