开发中,你有没有遇到这样的场景,项目启动后,立即需要进行一些操作。比如:加载一些初始化数据、执行一段逻辑代码。你可以使用SpringBoot中CommandLineRunner。它可以在项目启动后,执行CommandLineRunner接口实现类的相关逻辑。具体使用如下:
@Order(1)
@Component
public class Example implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
// 执行一些代码
}
}
特别要注意:多个CommandLineRunner的实现类是串行方式执行。如何在其中某一个实现类中使用死循环逻辑,将导致后续的实现类不能执行。解决该问题的方式为开启一个线程,异步去执行。