dav*_*vid 7 spring spring-boot
我正在尝试在 Spring Boot 项目启动后运行一些方法。@EventListener(ApplicationReadyEvent.class)
我在项目启动后想要运行的方法上方使用注释。但它一次只启动一种方法。我想同时启动多种方法。这是 的预期行为吗@EventListener(ApplicationReadyEvent.class)
?
可以放置多个(多个)方法,并注释@EventListener
所有这些方法都将被执行:
@Configuration
public class SampleConfiguration {
@Bean
public SampleBean sampleBean() {return new SampleBean();}
@EventListener
public void onApplicationReadyEvent(ApplicationReadyEvent event) {
System.out.println("Hello");
}
@EventListener
public void onApplicationReadyEvent2(ApplicationReadyEvent event) {
System.out.println("How are you");
}
}
Run Code Online (Sandbox Code Playgroud)
这将在应用程序上下文成功启动时打印“Hello”和“How are you”。
现在,spring 确实不会同时调用它们,它会解析所有侦听器并按顺序调用它们。
如果您需要并行执行,您可以创建一个侦听器,它将作为必须并行运行的逻辑任务的“入口点”,并使用线程/线程池执行器并行运行您选择的代码