CommandLineRunner、ApplicationRunner 接口是在容器启动成功后的最后一步回调(类似开机自启动)。
配合延时任务Timer,可以做到容器启动后执行脚本任务的效果:
下面的延时的详细说明
public static void timer2() { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("-------设定要指定任务--------"); } }, 1000, 5000); //Timer延时1秒执行,每5秒循环一次 }
结论:
1、TimerTask的run运行在子线程,非UI线程
2、如果TimerTask的run中有耗时操作
当耗时操作小于period周期时,仍以period时间为准进行周期循环
当耗时操作大于period周期时,等run执行完后,立即进行下一次