关于spring定时器的搭建

本文详细介绍了如何在Spring框架下配置定时任务,包括修改web.xml、构建bean-quartz.xml文件、定义任务类和定时任务类、设置cron表达式等步骤。同时,提供了示例代码和所需的jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要用到定时器,虽然原来也使用过,但今天我重新搭建了一遍,顺便复习一下

第一步:

应为考虑到是spring 加载,首先想到的是对web.xml的修改,因为想将定时器的配置作为一个独立的模块,bean-quartz.xml

故修改配置如下:

<!-- 配置Spring -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:bean*.xml</param-value>
 </context-param>

换成bean*.xml即可支持.

 

第二部:构建

bean-quartz.xml 内容如下:

<?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-2.0.xsd">
 
 <!-- 注册定时执行实体 -->

<!--定义自己的任务类--!> 

<bean id="doTask" class="com.joker.synz.quartz.SynzCert"></bean>
 <!-- ============================= 执行任务 ========================== -->
 <!-- 注册定时任务 -->
 <bean id="doTaskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <!-- 定时任务类 -->
  <property name="targetObject" ref="doTask" />
  <!-- 定时任务执行方法 -->
  <property name="targetMethod">

<!--指定自己的任务类需要执行的方法--!>

 <value>execute</value>
  </property>
  <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
  <property name="concurrent" value="false" />
 </bean>
 
 <!-- 定义定时器 -->
 <bean id="mainTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="doTaskJob" />

<!--cron表达式,指定任务执行的时间--!>
  <property name="cronExpression"
   value="${schedule.dotask.cronExpression}" />
 </bean>
  <!-- 注册定时器 -->

<!--注册,使它能够被加载并且运行起来--!>
 <bean id="schedulerFactoryBean" lazy-init="true" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref local="mainTrigger" />
   </list>
  </property>
 </bean>
</beans> 

其实很简单,定义,注册之后就可以使用了。

对于自己定义的类,无需实现任何接口或者继承任何类,自己写个类就可以。

package com.joker.synz.quartz;

import org.ezca.synz.quartz.thread.CertSYNZThtread;
/**
 *
 *
 * @author GQ
 *
 *
 */
public class SynzCert {
 public void execute(){
  new Thread(new CertSYNZThtread()).start();
 }
}

 

同时,需要jar包:

spring-context-support-3.0.5.RELEASE.jar
slf4j-api.jar和slf4j-log4j12.jar
log4j-1.2.14.jar。

关于cron表达式,请参考我转载的一篇文章。

 http://blog.youkuaiyun.com/joker_apple/article/details/20136193

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值