1.首先在Maven项目中配置一些jar包
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
2.在web.xml中配置前端控制器
<servlet>
<servlet-name>frontController</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>frontController</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.在frontController-servlet.xml配置quartz
<!-- spring整合quartz -->
<!--<bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">-->
<!--<property name="targetObject" ref="myBean"/>-->
<!--<property name="targetMethod" value="printMessage"/>-->
<!--</bean>-->
<bean id="firstComplexJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.snow.weather.quartz.FirstScheduledJob"/>
<property name="jobDataMap">
<!--suppress InjectionValueTypeInspection -->
<map>
<entry key="anotherBean" value-ref="anotherBean"/>
</map>
</property>
<property name="Durability" value="true"/>
</bean>
<!--<bean id="mySmpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">-->
<!--<property name="jobDetail" ref="simpleJobDetail"/>-->
<!--<property name="startDelay" value="1000"/>-->
<!--<property name="repeatInterval" value="2000"/>-->
<!--</bean>-->
<bean id="myCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="firstComplexJobDetail"/>
<property name="cronExpression" value="0/5 * * ? * *"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<!--<ref bean="simpleJobDetail"/>-->
<ref bean="firstComplexJobDetail"/>
</list>
</property>
<property name="triggers">
<list>
<!--<ref bean="mySmpleTrigger"/>-->
<ref bean="myCronTrigger"/>
</list>
</property>
</bean>
4.加入
AnotherBean.java:
package com.snow.weather.quartz;
import com.snow.weather.persistence.DataDao;
import com.snow.weather.persistenceImpl.DataDaoImpl;
import org.springframework.stereotype.Component;
/**
* Created by Administrator on 2017/6/22.
*/
@Component("anotherBean")
public class AnotherBean {
private DataDao dataDao= new DataDaoImpl();
public void printAnotherMessage(){
System.out.println("I am anotherBean!");
}
public void getHotData(){
System.out.println("I am getHotdata");
// String hotCity="北京";
// dataDao.saveCity(hotCity);
// dataDao.saveLife(hotCity);
// dataDao.saveTemp(hotCity);
// dataDao.saveWeather(hotCity);
}
}
FirstScheduledJob.java
package com.snow.weather.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by Administrator on 2017/6/22.
*/
public class FirstScheduledJob extends QuartzJobBean{
private AnotherBean anotherBean;
@Override
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("FirstScheduledJon Executes!"+sdf.format(date));
this.anotherBean.printAnotherMessage();
this.anotherBean.getHotData();
}
public void setAnotherBean(AnotherBean anotherBean){
this.anotherBean = anotherBean;
}
}
MyBean.java
package com.snow.weather.quartz;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by Administrator on 2017/6/22.
*/
@Component("myBean")
public class MyBean {
public void printMessage(){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("MyBean Executes"+sdf.format(date));
}
}
启动tomcat,运行结果:
每五秒调用一次。