在Spring Boot通过CommandLineRunner实现系统启动任务中我们介绍了通过CommandLineRunner实现启动任务。但是CommandLineRunner实现的启动任务,我们在传递入口参数时,只能传递基本类型,入法通过键值对的形式传递参数。
ApplicationRunner的实现原理跟CommandLineRunner基本类似,我们终点说一下ApplicationRunner的用法。ApplicationRunner实现类中run()方法参数为ApplicationArguments,ApplicationArguments说明如下:
- 通过
getNonOptionArgs()获取基本参数,这个与CommandLineRunner的参数是一致的。 - 通过
getOptionNames()获取键。 - 通过
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代表键,=后面是值,注意是--不是-
好文章!!!!!!!!!!