SpringBoot专题

08、SpringBoot中的ApplicationRunner

2019-06-16  本文已影响1人  Albert_Yu

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));
    }
}
上一篇下一篇

猜你喜欢

热点阅读