刚学习quartz的小伙伴 迷茫着,网上的好像都差不多,但是一运行,各种报错~~,今天特别总结下,分享给大家。首先你得架好ssm框架
运行环境 : jdk1.8 tomcat 7 ssm框架
里面需要三个jar包 其他自己需要的jar包 自己下载哦,看来很多网上代码,都是一个jar包,写的不全部,容易报错。注意:sping这些jar包版本最好一致,不然容易冲突
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version<!--这个看自己版本是多少-->
</dependency>
1.首先在springMVC.xml 里配置 quartz 的3个bean
<bean id="job2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!--注意:这个job2 是自己随便取的名字 ,你也可以自己取-->
<property name="targetObject" ref="studentDemo"></property>
<!--注意:这个ref="studentDemo" 里面是和自己写的StudentDemo .java注解对应的,后面有写这个类-->
<property name="targetMethod" value="work" /> <!--<!–声明指定任务类下的方法–>-->
</bean>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="job2" />
<property name="startDelay" value="1000" /><!-- <!–<– 调度工厂实例化后,经过10秒开始执行调度 –>–> -->
<property name="repeatInterval" value="3000" /><!-- <!–<!– 每2秒调度一次 –>–> -->
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="job2" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
<!-- 这么写也是可以的 <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="job2" />
<property name="cronExpression" value="0 30 9 * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="job2" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean> -->
2.然后写一个 StudentDemo .java
package com.shy.controller;
import java.util.Date;
import org.springframework.stereotype.Component;
@Component("studentDemo")//这个与刚写的springMVC里的对应<property name="targetObject" ref="studentDemo">
public class StudentDemo {
//对应的方法
public void work()
{
System.out.println("Quartz的任务调度!!!"+(new Date()).toString());
}
}
有用的小伙伴点个赞~~
另外附上相关视频 :https://www.imooc.com/video/15098
相关链接 https://www.cnblogs.com/drift-ice/p/3817269.html