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

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

Laughing
2021-06-08 / 0 评论 / 1,052 阅读 / 搜一下 / 正在检测是否收录...

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());
    }
}

修改入口参数

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

0

评论 (0)

取消
  1. 头像
    沐子
    Windows 10 · Google Chrome

    好文章!!!!!!!!!!

    回复