在Java中,`@Scheduled` 注解是用来配置Spring框架中的定时任务的。`cron` 属性接受一个Cron表达式,用于指定任务触发的规则。
Cron表达式由六或七个空格分隔的字段组成,分别表示:
1. 秒(0-59)
2. 分钟(0-59)
3. 小时(0-23)
4. 月份中的日子(1-31)
5. 月份(1-12 或 JAN-DEC)
6. 星期中的日子(0-7 其中0和7都代表SUN)
7. 年份(可选字段)
对于表达式 `@Scheduled(cron = "0 */1 * * * ?")`,其含义如下:
- "0" 表示秒,任务会在每个分钟的0秒触发。
- "*/1" 表示分钟,任务会每隔1分钟触发一次。
- "*" 表示小时,任务会在每个小时触发。
- "*" 表示月份中的日子,任务会在每个月的每一天触发。
- "*" 表示月份,任务会在每个月触发。
- "?" 表示星期中的日子,这个字符在这里是无效的,因为字段被设置了“*”,但它的存在是为了Cron表达式的一致性。
所以,`@Scheduled(cron = "0 */1 * * * ?")` 的含义是:该任务会每隔一分钟触发一次。