1.实现SchedulingConfigurer类下configureTasks(ScheduledTaskRegistrar var1)方法编写自己的周期任务,而后调用ScheduledTaskRegistrar类中的public void addTriggerTask(Runnable task, Trigger trigger)方法执行线程任务。
过程中学到的小知识
-
taskRegistrar.addTriggerTask(((Runnable) task),
triggerContext -> {
…
}
);
以上是lambda语法的使用,类似于
taskRegistrar.addTriggerTask(((Runnable) task),
new Trigger(){
…
}
);
其中Trigger类是一个接口,其中只有一个方法,方法的执行体就是…的具体内容。 -
利用Executors框架创建线程池。标注有@Configuration的类下的标注@Bean的方法会自动执行(暂时简单的理解是这样)
@Bean
public Executor taskExecutor() {
//设置对象线程池大小,若任务量大于该数值,任务会在一个queue里等待执行
return Executors.newScheduledThreadPool(10);
}
- @Qualifier(value = “…”)注释用来告诉注入时存在不明确的bean注入哪个;
@Primary注释用来指定不知道注入哪个bean时默认注定。