原创

Spring Boot通过ApplicationRunner实现系统启动任务

温馨提示:
本文最后更新于 2024年02月07日,已超过 18 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

Spring Boot通过CommandLineRunner实现系统启动任务中我们介绍了通过CommandLineRunner实现启动任务。
但是CommandLineRunner实现的启动任务,我们在传递入口参数时,只能传递基本类型,入法通过键值对的形式传递参数。

ApplicationRunner的实现原理跟CommandLineRunner基本类似,我们终点说一下ApplicationRunner的用法
ApplicationRunner实现类中run()方法参数为ApplicationArguments,ApplicationArguments说明如下:

  1. 通过getNonOptionArgs()获取基本参数,这个与CommandLineRunner的参数是一致的。
  2. 通过getOptionNames()获取键。
  3. 通过getOptionValues获取值。

    演示代码

    @Component
    @Order(1)
    @Slf4j
    public class MyApplicationRunner implements ApplicationRunner {
    
    @Override
    public void run(ApplicationArguments args) {
        List<String> nonOptionArgs = args.getNonOptionArgs();
        Set<String> optionNames = args.getOptionNames();
        List<String> optionValues = args.getOptionValues("name");
        log.info("MyApplicationRunner>>>nonOptionArgs>>>" + nonOptionArgs.toString());
        log.info("MyApplicationRunner>>>optionNames>>>" + optionNames.toString());
        log.info("MyApplicationRunner>>>optionValues>>>" + optionValues.toString());
    }
    }
    

    修改入口参数

    idea修改入口参数如下

--name代表键,=后面是值,注意是--不是-

正文到此结束
本文目录