1.为了让实体类进行不耦合,独立运行,我们只需要写个实体类,不进行实现job 接口即可
2.
public class MyJob{
public void execute() {
System.out.println("-->" + new Date() + ": doMyJob....");
}
3.主要是spring 进行整合,即在配置文件中进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean
id="myJob"
class="com.quartz.spring.MyJob"/>
<!-- 配置 JobDetail. 需要额外导入 spring-context-support-4.0.0.RELEASE.jar -->
<bean
id="jobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myJob"></property>
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 配置 CronTrigger -->
<bean
id="trigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"></property>
<property name="cronExpression" value="0/2 43 14 * * ?"></property>
</bean>
<!-- 配置 Scheduler -->
<bean
id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<array>
<ref bean="trigger"/>
</array>
</property>
<!-- 配置 Quartz 的属性. 配置文件在 org.quartz 包下 -->
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">5</prop>
</props>
</property>
<!-- 配置该 Quarte 在 scheduler 对象创建好多长时间后触发 -->
<property name="startupDelay" value="5"></property>
</bean>
</beans>
注意:用到了cron 表达式,主要的作用是为定义时间规格。
4.进行测试
<pre name="code" class="java">public static void main(String[] args) {
ApplicationContext ctx =
new ClassPathXmlApplicationContext("applicationContext.xml");
}