首页 > 解决方案 > 春季活动将在元旦举行

问题描述

我正在使用最新版本的 Spring。当新年在新年发生变化时,我需要执行一些数据库操作。有没有办法启动一个基于 Spring 的事件来检测那一年发生了变化?

谢谢。

标签: javaspringspring-boot

解决方案


正如我在评论中所说,这可以通过使用@Scheduled注释来实现。调度注解允许我们定义一个 cron 表达式,该表达式将确定何时调用使用此注解注解的方法。从文档:

cron

类似 cron 的表达式,扩展了通常的 UN*X 定义以包括秒以及分钟、小时、月中的某天、月和周中的某天的触发器。

例如,方法

@Scheduled(cron = "0 0 0 1 1 *")
public void doStuffOnFirstOfJanuary() {
    System.err.println("This is called");
 }

将在 1 月的每个第一天 0 小时 0 分 0 秒调用。

为了让这个注解起作用,你必须在你的应用程序中启用调度,或者通过使用@EnableScheduling注解或者<task:annotation-driven/>如果你使用 xml 配置通过添加元素。


推荐阅读