<!--添加Quartz框架 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<!--组件可选项 -->
<!--start -->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<!--end -->
2. 配置spring的配置文件spring.xml文件,装载quartz.配置文件加以下代码:
<!-- 方式:使用MethodInvokingJobDetailFactoryBean,任务类可以不实现Job接口,通过targetMethod指定调用方法 -->
<!-- 定义目标bean和bean中的方法 -->
<bean id="SpringQtzJob"
class=" com.founder.centerbusiness.controller.basicMgr.RuleMgrController" />
<bean id="SpringQtzJobMethod"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="SpringQtzJob" />
</property>
<property name="targetMethod"> <!-- 要执行的方法名称 -->
<value>execute</value>
</property>
</bean>
<!-- ======================== 调度触发器 ======================== -->
<bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="SpringQtzJobMethod"></property>
<!-- 0/1 * * * * ? : 每一秒扫描执行一次 -->
<property name="cronExpression" value="0/1 * * * * ?"></property>
</bean>
<!-- ======================== 调度工厂 ======================== -->
<bean id="SpringJobSchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="CronTriggerBean" />
</list>
</property>
</bean>
其中
<!-- 0/2 * * * * ? : 每一秒扫描执行一次 -->
<property name="cronExpression" value="0/2 * * * * ?"></property>
表示的是每1秒扫描一次
<!-- 0/8 * * * * ? : 每8秒扫描执行一次 -->
<property name="cronExpression" value="0/8 * * * * ?"></property>
表示的是每8秒扫描一次
具体*表示的是什么意义,自己去问度娘娘.
id=" SpringQtzJob "表示的是执行操作的本地文件路径.
3. 本地执行java文件代码如下:
/**
* 执行定时器
*/
protected void execute() {
String currentTime = DateUtils.getDateTime();
System.out.println("当前时间--->" + currentTime);
}
|