spring+quartz实例

spring自己就支持quartz,这两个集成经常会出现因为包的版本问题而出现的各种问题。而且不同版本的配置方式也有点不同。

我用的是spring4.15+quartz-2.2.0.jar。

先是配置文件applicationContext.xml

    <!-- 启动触发器的配置开始 -->  
    <bean name="startQuertz" lazy-init="false" autowire="no"  
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="triggers">  
            <list>  
                <ref bean="myJobTrigger" />  
            </list>  
        </property>  
    </bean>  
    <!-- 启动触发器的配置结束 -->  
    
    <!-- quartz-2.x的配置 -->  
    <bean id="myJobTrigger"  
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
        <property name="jobDetail">  
            <ref bean="myJobDetail" />  
        </property>  
        <property name="cronExpression"> 
    <!-- 指定Cron表达式:每月27日16时21分启动 Seconds Minutes Hours DayofMonth Month DayofWeek Year --> <value>0 21 16 27 * ? *</value> </property> </bean> <!-- job的配置开始 --> <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="punchJob" /> </property> <property name="targetMethod"> <value>work</value> </property> </bean> <!-- job的配置结束 --> <!-- 工作的bean --> <bean id="punchJob" class="schedule.PunchJob" />

配置文件中的cronExpression就是设置什么时间之间,和linux中设置crontab差不多。

下面是调度器

package schedule;

import org.springframework.beans.factory.annotation.Autowired;

import domain.Attend;
import service.EmployeeService;

public class PunchJob {
    @Autowired
    private EmployeeService employeeService;
    
    public void work() {  
        Attend attend = new Attend();
        employeeService.isCome(attend);
    }  

}
原文地址:https://www.cnblogs.com/yeming/p/5440383.html