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