Spring Boot Cron 与 Linux Cron 有何区别?
Linux crontab 是 5 字段格式:分 时 日 月 周。Spring Boot 的 @Scheduled(cron) 使用 6 字段格式:秒 分 时 日 月 周,在最前面多了一个「秒」字段,这是最常见的踩坑点。
Spring Boot Cron 可视化生成器,六字段格式,14 个预设,实时预览触发时间。
快速预设
字段构建器
星期快速选择
月份快速选择
Cron 表达式
Spring Boot
@EnableScheduling // 启动类上添加
@Scheduled(cron = "0 0 8 * * ?")
public void scheduledTask() {
// 定时任务逻辑
}接下来 5 次触发时间
Linux crontab 是 5 字段格式:分 时 日 月 周。Spring Boot 的 @Scheduled(cron) 使用 6 字段格式:秒 分 时 日 月 周,在最前面多了一个「秒」字段,这是最常见的踩坑点。
* 匹配该字段的所有值。? 表示不指定,只允许用于「日」和「周」字段——当你用「日」指定具体日期时,「周」字段应填 ?,反之亦然,避免两个字段相互冲突。
使用步长语法 /:0 */5 * * * ? 表示每分钟数能被5整除时触发(0, 5, 10...55),秒字段为 0 确保在整分时触发。
将周字段设为 MON-FRI(或 1-5),日字段设为 ?。例如:0 0 9 ? * MON-FRI 表示每个工作日早上9点执行。Spring Boot 支持英文缩写 SUN/MON/TUE/WED/THU/FRI/SAT。
需要两步:① 在启动类上添加 @EnableScheduling;② 在具体方法上添加 @Scheduled(cron = "..."),该方法所在类需为 Spring 管理的 Bean(@Component、@Service 等)。