java 使用@Scheduled
时间: 2023-10-12 22:22:11 浏览: 78
@Scheduled 是 Spring 框架中用来实现定时任务的注解。它可以用来指定一个方法在固定的时间间隔或特定的时间执行。具体使用方式如下:
1. 在类上添加 @EnableScheduling 注解,开启定时任务支持。
2. 在需要定时执行的方法上添加 @Scheduled 注解,并设置 cron 表达式或时间间隔。
例如:
```
@EnableScheduling
public class ScheduledTask {
@Scheduled(cron = "0 0 0 * * ?") // 每天0点执行
public void task1() {
// 任务逻辑
}
@Scheduled(fixedRate = 10000) // 每隔10秒执行
public void task2() {
// 任务逻辑
}
}
```
上述代码中,task1 方法将在每天0点执行,而 task2 方法将每隔10秒执行一次。可以根据实际需求设置不同的时间间隔或特定的时间点。
相关问题
java 24小时执行任务_java使用@Scheduled注解执行定时任务代码示例
好的,我知道你的问题了。关于使用@Scheduled注解执行定时任务的Java代码示例,可以参考以下代码:
首先,在需要执行定时任务的方法上添加@Scheduled注解,指定任务的触发时间,例如:
```
@Scheduled(cron = "0 0 0 * * ?") // 每天0点执行
public void task() {
// 任务逻辑
}
```
可以使用cron表达式来指定具体的执行时间,也可以使用fixedRate、fixedDelay等属性来指定任务的执行频率。
完整的示例代码如下:
```
@Component
public class ScheduledTask {
@Scheduled(cron = "0 0 0 * * ?") // 每天0点执行
public void task() {
// 任务逻辑
System.out.println("定时任务执行了!");
}
}
```
需要注意的是,使用@Scheduled注解执行定时任务需要在Spring Boot应用中启用定时任务功能,可以在启动类上添加@EnableScheduling注解来开启。
Java 获取 @Scheduled注解
可以通过反射获取到带有 @Scheduled 注解的方法,然后再获取注解的属性值。具体实现可以参考以下代码:
```java
import org.springframework.scheduling.annotation.Scheduled;
import java.lang.reflect.Method;
public class ScheduledAnnotationUtils {
public static void main(String[] args) throws NoSuchMethodException {
Class<?> clazz = ScheduledTask.class;
Method method = clazz.getMethod("task");
Scheduled scheduled = method.getAnnotation(Scheduled.class);
String cron = scheduled.cron();
System.out.println(cron);
}
static class ScheduledTask {
@Scheduled(cron = "0/5 * * * * ?")
public void task() {
System.out.println("task");
}
}
}
```
输出结果为:`0/5 * * * * ?`
阅读全文