1.在項目中導入jar包(之前看資料,別人說Spring框架自帶quartz,直接可以使用,但自己實踐時發現有幾個方法不存在,所以就下載jar包導入了)
- aopalliance.jar
- aspectjrt.jar
- aspectjweaver.jar
- commons-beanutils-1.9.2.jar
- commons-codec-1.9.jar
- commons-collections-3.2.1.jar
- commons-dbcp-1.4.jar
- commons-fileupload-1.3.1.jar
- commons-io-2.4.jar
- commons-lang-2.6.jar
- commons-logging-1.2.jar
- commons-net-3.1.jar
- commons-pool-1.6.jar
- commons-pool2-2.2.jar
- druid-1.0.9.jar
- fastjson-1.1.39.jar
- freemarker-2.3.19.jar
- hamcrest-core-1.3.jar
- jackson-all-1.9.5.jar
- jboss-logging-3.1.0.CR2.jar
- jettison-1.0.1.jar
- jstl-1.1.2.jar
- junit-4.11.jar
- log4j-1.2.17.jar
- log4j-over-slf4j-1.7.7.jar
- mybatis-3.2.6.jar
- mybatis-spring-1.2.2.jar
- mysql-connector-java-5.1.30-bin.jar
- servlet-api.jar
- slf4j-api-1.7.7.jar
- slf4j-ext-1.7.7.jar
- spring-aop-4.0.2.RELEASE.jar
- spring-aspects-4.0.2.RELEASE.jar
- spring-beans-4.0.2.RELEASE.jar
- spring-context-4.0.2.RELEASE.jar
- spring-context-support-4.0.2.RELEASE.jar
- spring-core-4.0.2.RELEASE.jar
- spring-expression-4.0.2.RELEASE.jar
- spring-jdbc-4.0.2.RELEASE.jar
- spring-oxm-4.0.2.RELEASE.jar
- spring-test-4.0.2.RELEASE.jar
- spring-tx-4.0.2.RELEASE.jar
- spring-web-4.0.4.RELEASE.jar
- spring-webmvc-4.0.2.RELEASE.jar
- standard-1.1.2.jar
Spring的jar包自然是必須的,然後在quartz官網下載jar包(Quartz 2.1.7),解壓後導入下面兩個包。
2.在Spring的配置文件頭部定義以下信息
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
3.寫好自己需要執行的業務邏輯代碼
1 package com.msq; 2 3 public class TestJobTask{ 4 /** 5 *業務邏輯處理 6 */ 7 public void service(){ 8 /**業務邏輯*/ 9 System.out.println(System.currentTimeMillis()); 10 } 11 }
4.在Spring裏面繼續作如下配置:
1 <!-- 定時任務start --> 2 3 <!-- 線程執行器配置,用於任務註冊 --> 4 <bean id="executor" 5 class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 6 <property name="corePoolSize" value="10" /> 7 <property name="maxPoolSize" value="100" /> 8 <property name="queueCapacity" value="500" /> 9 </bean> 10 11 <!-- 業務對象 --> //1.配置任務類 12 <bean id="testJobTask" class="com.msq.TestJobTask" /> 13 14 <!-- 調度業務 --> //2.配置任務類描述 15 <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 16 <property name="targetObject" ref="testJobTask" /> //任務目標類 17 <property name="targetMethod" value="service" /> //任務目標方法 18 </bean> 19 20 <!-- 增加調用的觸發器,觸發時間 並注入到調度工廠--> //3.配置觸發器,將觸發器注入到調度工廠 21 <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 22 <property name="jobDetail" ref="jobDetail" /> //任務類 23 <property name="cronExpression" value="0/5 * * * * ? *" /> //cron表達式I 24 </bean> 25 26 <!-- 設置調度工廠 注入觸發器--> 27 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 28 <property name="triggers"> 29 <list> 30 <ref bean="cronTrigger" /> 31 </list> 32 </property> 33 <property name="taskExecutor" ref="executor" /> 34 </bean> 35 36 <!-- 定時任務end -->