一个项目 多个 ApplicationRunner
时间: 2023-10-26 08:22:43 浏览: 108
一个项目中可以实现多个ApplicationRunner接口。但是需要注意的是,如果其中一个ApplicationRunner接口中包含了一个不会退出的循环体(比如while(true)),那么后续的ApplicationRunner接口将不会被调用。这是因为在Spring Boot中,ApplicationRunner接口是按照优先级顺序执行的。每个ApplicationRunner接口都有一个run方法,我们只需要编写一个类,实现该接口并重写run方法即可。在类上使用@Component注解将其注册为一个Spring Bean,并可以使用@Order注解指定执行顺序。例如,以下是一个示例代码:
```
@Component
@Order(1)
public class BootstrapManager implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("------ This is run method in ApplicationRunner ------");
}
}
```
在上述示例中,BootstrapManager类实现了ApplicationRunner接口,并被标记为@Component和@Order(1),表示它是一个Spring Bean,并且具有较高的执行优先级。当应用程序启动时,Spring Boot将调用run方法,并执行其中的逻辑代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [SpringBoot实现多个ApplicationRunner时部分接口未执行](https://blog.csdn.net/u013710837/article/details/104969855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [SpringBoot之ApplicationRunner](https://blog.csdn.net/wangzhongshun/article/details/127416263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文