java spring 定时器
时间: 2023-12-26 15:05:24 浏览: 104
Java Spring定时器有两种实现方式,分别是Java Timer定时和Quartz定时器。
1. Java Timer定时:
```java
import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask {
public void run() {
// 定时执行的任务逻辑
System.out.println("Java Timer定时任务执行");
}
public static void main(String[] args) {
Timer timer = new Timer();
// 延迟1秒后开始执行任务,每隔5秒执行一次
timer.schedule(new MyTask(), 1000, 5000);
}
}
```
2. Quartz定时器:
首先需要在pom.xml文件中添加Quartz的依赖:
```xml
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
```
然后创建一个Job类,实现Job接口,并重写execute方法,定义定时执行的任务逻辑:
```java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定时执行的任务逻辑
System.out.println("Quartz定时任务执行");
}
}
```
接下来,在Spring配置文件中配置Quartz定时器:
```xml
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myJob"/>
<property name="targetMethod" value="execute"/>
</bean>
<bean id="myTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="myJobDetail"/>
<property name="startDelay" value="1000"/>
<property name="repeatInterval" value="5000"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myTrigger"/>
</list>
</property>
</bean>
```
以上是Java Spring定时器的两种实现方式,可以根据具体项目需求选择适合的方式。
阅读全文