08、SpringBoot中的ApplicationRunner和CommandLineRunner

1、应用场景

有时我们需要在应用程序启动时,执行一些初始化操作,类似@PostContruct注解的作用!如读取配置文件,加载数据至缓存,清除缓存等操作。SpringBoot为我们提供了ApplicationRunner和CommandLineRunner接口。当接口有多个实现类时,提供了@Order注解实现自定义执行顺序,也可以实现Order接口来定义顺序。(数字越小优先级越高,即优先执行)
ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。想要更详细地获取命令行参数,那就使用ApplicationRunner接口

2、ApplicationRunner接口

@Component
@Order(2)
public class MyApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("MyApplicationRunner 执行了..."+ JSON.toJSONString(args.getSourceArgs()));
    }
}

3、CommandLineRunner接口

@Component
@Order(1)
public class MyCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("MyCommandLineRunner 执行了..." + JSON.toJSONString(args));
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容