java - 春季活动将在元旦举行
问题描述
我正在使用最新版本的 Spring。当新年在新年发生变化时,我需要执行一些数据库操作。有没有办法启动一个基于 Spring 的事件来检测那一年发生了变化?
谢谢。
解决方案
正如我在评论中所说,这可以通过使用@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 配置通过添加元素。
推荐阅读
- sql-server - 我需要了解以下 MS SQL 语句(SELECT FROM VALUES)
- spring-boot - Spring Boot:属性 spring.jpa.show-sql 不适用于 Datastore
- neo4j - Neo4j 浮点求和不同的结果
- swiftui - SwiftUI 多行文本总是在 1 行截断
- android - 我们可以通过来自设备的蓝牙或 BLE 信号唤醒 Android 应用吗 - Android 8.0 及更高版本
- node.js - 使用 nodejs 为 MQTT 5.0 功能配置主题别名
- dom - 如何列出所有定义的 customElements?
- .net - 从.Net应用程序向收件人发送电子邮件,我想检索单击链接的收件人的电子邮件
- debugging - 在 TYPO3 后端使用 Doctrine SQLLogger 记录所有执行的 SQL 查询
- django - 如何在测试中说“不等于”?断言不相等