spring4 ssm整合quartz,单定时任务

这种配置方式,只适合在项目添加后台定时任务。

1.添加maven依赖

<!-- quartz-->
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.3.0</version>
    </dependency>

    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz-jobs</artifactId>
      <version>2.3.0</version>
    </dependency>

2.增加定时任务配置到spring-context.xml

	 <!-- 定时任务实现类 -->
	<bean name="jobClass" class="TimerTask"/>

    <bean id="increJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="jobClass"/>
        </property>
        
        <property name="targetMethod">  
       		 <!-- 要执行的方法名称 -->
            <value>execute</value>
        </property>
    </bean>

    <!-- ======================== 调度触发器 ======================== -->
    <bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="increJob"></property>
 		<!-- 每3秒执行一次 -->
        <property name="cronExpression" value="0/3 * * * * ?"></property>
    </bean>

    <!-- ======================== 调度工厂(此种方法可以使用注解方式调用Service、Dao)======================== -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!-- 以注解方式引用 JobFactory类 -->
        <property name="jobFactory" ref="jobFactory" />
        <property name="triggers">
            <list>
                <ref bean="cronTriggerBean" />
            </list>
        </property>
    </bean>

JobFactory类

import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;
import org.springframework.stereotype.Service;

@Service("jobFactory")
public class JobFactory extends AdaptableJobFactory {
    @Autowired
    private AutowireCapableBeanFactory autowireCapableBeanFactory;

    @Override
    protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
        Object  jobInstance=  super.createJobInstance(bundle);
        autowireCapableBeanFactory.autowireBean(jobInstance);
        return jobInstance;
    }
}

TimerTask类

import javax.annotation.Resource;
import java.util.List;

public class TimerTask {
    @Resource
    PersonService personService;
    public void execute() {
        List<Persion> all = personService.getAll();
        System.out.println(all);
    }
}

将项目部署到服务器,启动就会执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值