在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
代表键,=
后面是值,注意是--
不是-
好文章!!!!!!!!!!