@Scheduled
定时任务可以有很多写法,我觉得最简单的就是用注解的方式,如果你的项目用的是spring boot框架,就可以三步完成:
一,添加@EnableScheduling注解到入口类声明上面
-
/** -
* 启动 -
* -
*/ -
@SpringBootApplication -
@EnableScheduling -
public class Application { -
public static void main(String args[]) { -
SpringApplication.run(Application.class, args); -
} -
}
二,创建类,添加@Component注解
-
@Component -
public class Task { -
}
三,创建方法,添加@Scheduled注解
-
@Scheduled(cron = "${task.cron.tradeData}") -
public void getTradeData() { -
}
(这里cron是从配置文件取值,如下)
task:
cron:
tradeData: 0 1 0 * * ?
看似简单,却隐藏着很多坑,一不小心就掉进去了,比如:
(1)此方法不能有参数
(2)此方法不能有返回值
(3)此类中不能包含其他带任何注解的方法(发现新大陆)
违反任何一条,定时都不会生效!
Spring Boot定时任务注解使用及注意事项

221





