spring-boot CommandLineRunner、ApplicationRunner实现与使用

CommandLineRunner接口会在容器启动成功后被回调。若有多个自定义CommandLineRunner接口,我们可以通过@Order注解/实现Ordered接口控制它们执行的先后顺序

实现步骤

1)编写CommandLineRunner实现类,将其加入spring容器中

@Component
public class ServerSuccessReport implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("======应用启动成功======");
    }
}

2)执行BlogApplication

@SpringBootApplication
public class BlogApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(BlogApplication.class);
        ConfigurableApplicationContext context = springApplication.run(args);
        context.close();
    }
}

spring-boot CommandLineRunner、ApplicationRunner实现与使用_第1张图片
console result

我们看到,当输出 ======应用启动成功======后,应用提示我们花费了9s时间,然后因为我们执行了 context.close()方法,应用提示我们正在关闭。我们会发现,CommandLineRunner接口的确是在容器初始化成功后被回调的。

@Order定义CommandLineRunner执行顺序

这个较为简单,本文不多描述,@Order注解中的数越小,执行的优先级越高

spring-boot CommandLineRunner、ApplicationRunner实现与使用_第2张图片
console result

springboot还为我们提供了另一个相似的接口,它能够实现更多的功能。ApplicationRunner,读者可以试一试。

你可能感兴趣的:(spring-boot CommandLineRunner、ApplicationRunner实现与使用)