打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBootRunner简单实践
本文演示了SpringBoot基于CommandLineRunner及ApplicationRunner的启动参数读取模式
CommandLineRunner
CommandLineRunner与ApplicationRunner的区别只是run方法的参数差异,这两个runner都主要用户类似开机启动的场景,也就是在服务启动完成,所有bean初始化完毕后,回调runner接口的run方法,完成资源初始化等操作,例如redis中缓存初始化等。
下面是个cmdrunner示例:
@Component@Order(1)@Slf4jpublic class CmdRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { log.info("在全部bean初始化完成后调用"); log.info("可通过CommandLineRunner实现类来进行资源初始化等操作"); //打印 program args for (String arg : args) { log.info(arg); } // 打印vm options log.info(System.getProperty("vmarg")); }} ApplicationRunner
applicationrunner可以更结构化的读取参数,而不需要自行基于string值进行解析:
@Component@Order(2)@Slf4jpublic class AppRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { log.info("基于Order第二优先级启动"); log.info("与CommandLineRunner区别是获取参数的方式不一样,也就是run方法的参数不一样"); //获取并打印option args,例如 --parg=p1 args.getOptionNames().forEach(name -> { log.info("{}:{}", name, args.getOptionValues(name)); }); log.info("NonOptionArgs:{}", args.getNonOptionArgs()); }}
同时,有多个runner时,可通过@Order 注解来制定启动顺序。
启动参数运行验证
如果功能idea,可以在 edit configurations中,分别配置vm optinos 和 program arguments,具体如下:
vm options:-Dvmarg=v1program arguments:--parg=p1 --parg=p2 p3
同样,也可以在命令行执行并传递启动参数,具体如下:
语言 方法
1037抖音创业网
V9585抖音元气学院特训结束,15位达人将进行元气冲刺
2082 2008/08/28 18:47:22
java -jar hiboot-1.0-SNAPSHOT.jar -Dvmarg=v1 --parg=p1 --parg=p2 p3
运行后,控制台输入内容如下
Started RunnerApplication in 1.432 seconds (JVM running for 2.097)在全部bean初始化完成后调用可通过CommandLineRunner实现类来进行资源初始化等操作--parg=p1--parg=p2p3v1基于Order第二优先级启动与CommandLineRunner区别是获取参数的方式不一样,也就是run方法的参数不一样parg:[p1, p2]NonOptionArgs:[p3]SourceArgs:--parg=p1
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浅谈Spring @Order注解的使用(转)
探究SpringBoot启动时实现自动执行代码
Spring Boot 启动时,让方法自动执行的 4 种方法!
SpringBoot事件的监听与发布
Spring Boot 启动加载数据 CommandLineRunner
kafka-server-start脚本简介
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服