java web 配置spring的定時任務

java web 配置spring
https://blog.csdn.net/woshimyc/article/details/80089062

MyJob.java:

package com.yc.job;
import java.util.Date;
import com.yc.utils.DateUtil;
/**@ClassName: MyJob
 * @Description:不用繼承Quartz的Job接口 
 * @author: 
 * @date:
 */ 
public class MyJob { 
	public void execute() { 
		System.out.println("Quartz Spring XML 配置 - MyJob:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
	} 
}

MyJobDetail.java:
package com.yc.job;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.yc.utils.DateUtil;
/**
 * 
 * 
 * @ClassName: MyJobDetail
 * 
 * @Description: 配置文件中使用JobDetailBean,需要繼承QuartzJobBean
 * 
 * @author:
 * 
 * @date:
 */
public class MyJobDetail extends QuartzJobBean{
	protected void executeInternal(JobExecutionContext arg0)
			throws JobExecutionException {
		System.out.println("Spring 集成 Quartz 的第二種方式:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
	}
}

MySimpleJob.java:
package com.yc.job;
import java.util.Date;
import org.springframework.stereotype.Component;
import com.yc.utils.DateUtil;
/**
 * 簡單任務
 */
@Component("mySimpleJob")
public class MySimpleJob {
    public void execute() {
        System.out.println("Quartz Spring XML 簡單任務- MySimpleJob:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
    }
}

ediServiceContext.xml 新建配置:
<?xml version="1.0" encoding="UTF-8"?> 
<!-- $Id: ediServiceContext.xml $ -->
<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.xsd">
	 <!-- 配置Job類 --> 
	 <bean id="myJob" class="com.yc.job.MyJob">
	 </bean>
	 <!-- 配置JobDetail -->
     <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.yc.job.MyJobDetail"></property>
        <property name="durability" value="true"></property>
    </bean>
 </beans>

adapterContext.xml 新建配置:
<?xml version="1.0" encoding="UTF-8"?> 
<!-- $Id: adapterContext.xml $ -->
<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.xsd">
    <!-- 配置調度工廠 --> 
  <!-- lazy-init=’false’,則容器啓動時就會執行調度程序;
     lazy-init=’true’,則需要實例化該bean才能執行調度程序 -->
  <bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="true"> 
   <property name="triggers"> 
    <list> 
     <ref bean="cronTriggerFactoryBean"></ref> 
     <ref bean="quartzJobBean"></ref>
     <ref bean="simpleTrigger"/>
    </list> 
   </property> 
  </bean> 
    
  <!-- 1,CronTrigger 配置調度任務 -->
  <!-- 配置JobDetail --> 
  <bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
   <!-- 執行目標job --> 
   <property name="targetObject" ref="myJob"></property> 
   <!-- 要執行的方法 --> 
   <property name="targetMethod" value="execute"></property> 
  </bean> 
  <!-- 配置tirgger觸發器 --> 
  <bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 
   <!-- jobDetail --> 
   <property name="jobDetail" ref="springQtzJobMethod"></property> 
   <!-- cron表達式,執行時間 每5秒執行一次 --> 
   <property name="cronExpression" value="0/5 * * * * ?"></property> 
  </bean> 
  
  <!-- 2,QuartzJobBean 配置調度任務 -->
  <!-- 配置quartzJob觸發器 -->
    <bean id="quartzJobBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- jobDetail -->
        <property name="jobDetail" ref="jobDetail"></property>
        <!-- cron表達式,執行時間  每5秒執行一次 -->
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>
  
  
  <!--3,配置簡單觸發器-->
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail"/>
        <!-- 延遲3s執行 -->
        <property name="startDelay" value="3000"/>
        <!-- 每隔10s執行一次 -->
        <property name="repeatInterval" value="10000"/>
    </bean>
    <!--使用簡單作業詳情-->
    <bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!--配置簡單作業的目標類-->
        <property name="targetObject" ref="mySimpleJob"/>
        <!--配置簡單作業的目標方法-->
        <property name="targetMethod" value="execute"/>
        <!--false表示等上一個任務執行完後再開啓新的任務-->
        <property name="concurrent" value="false"/>
    </bean>
  
 </beans>

applicationcontext.xml 配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: applicationcontext.xml $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
 
    <!-- spring集成  項目啓動時會去掃描com.yc目錄下的javaBean-->
    <context:component-scan base-package="com.yc" />
    <import resource="ediServiceContext.xml" />
	<import resource="adapterContext.xml" />

</beans>
其中需要新加的jar:quartz-2.2.1.jar,slf4j-api-1.7.7.jar
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章